r
Orgaan van de vereniging van Philips
Thuiscomputer gebruikers PTC
Postbus 67, 5600 AB Eindhoven Tel: 040-784537
April 1986
A.C.J.Groenevdd
handboek voor iedereen
Ik I ^
MS
SIM
4? | \
UW MSX computer
de baas
De gegeven
leerboeken
De serie MSX leerboeken geeft een
kompIe te kursus MSX-BASIC pro¬
grammeren in drie delen. Deze zijn
gericht op de beginnende program¬
meur. De gebruikte voorbeelden zijn
zo praktisch mogelijk gekozen, waar¬
door ai in een vroeg stadium bruik¬
bare programma's kunnen worden
gemaakt, leder deel werkt toe naar
het voorbeeldprogramma dat achter
in het deel is opgenomen. De op¬
drachtenboekjes zijn apart verkrijg¬
baar. Zowel voor gebruik op school
als voor individueel gebruik zullen
deze boeken erg nuttig zijn.
handboeken
leerboeken
software
_ BASIC
_i prijs f 49,50
ZZZl ISBN 90 6398 100 7
“1 De steun en toeverlaat van zowel de pro¬
fessionele programmeur als de amateur.
DISK
prijs f 29,50
ISBN 90 6398 407 3
Basic in verband met de schijveneenheid;
aanvulling op bovengenoemd deel.
QUICK DISK
prijs f 23,50
ISBN 90 6398 254 2
Behandeling van de quick disk komman¬
do's; aanvulling op Basic handboek.
ZAKBOEKJE
prijs f 19,50
ISBN 90 6398 888 5
Alle belangrijke gegevens voor Basic- en
mach in e taa/programmeurs.
DOS
prijs f 26,50
ISBN 90 6398 674 2
Behandeling van het eerste professionele
ij MSX operating system: het MSX DOS.
r PRAKTIJK
PROGRAMMA'S
prijs f 24,50
ISBN 90 6398 437 5
programma's zijn van uitgebreid kommentaar voorzien.
MSX Basic leerboek deel 1
ISBN 90 6398 649 1, prijs f 24,50
Opdrachten bij deel 1
ISBN 90 6398 596 7, prijs f 11 ,—
Programmacassette bij deel 1
ISBN 90 6398 656 4, prijs f 32,50
MSX Basic leerboek deel 2
ISBN 90 6398 769 2, prijs f 24,50
Opdrachten bij deel 2
ISBN 90 6398 556 8, prijs f 11 -
Programmacassette bij deel 2
ISBN 90 6398 566 5, prijs f 32,50
MSX DOS leerboek deel 3
ISBN 90 6398 519 3, prijs f 24,50
Opdrachten bij deel 3
ISBN 90 6398 516 9, prijs f 11-
Programmacassette bij deel 3
ISBN 90 6398 526 6, prijs f 32,50
DE£l 1
Vraag even om onze uitgebreide gratis catalogus
van computerboeken en software. Al onze uitgaven zijn
ook verkrijgbaar in de boekhandel en computershop.
uitgeverij STARK - TEXEL
postbus 302 -1794 ZG Oosterend tel 02223 - 661
truuks en tips
deel 1
MSX truuks en tips deel 1
ISBN 90 6398 900 8, f 24,90
MSX truuks en tips deel 2
ISBN 90 6398 340 9, f 24,90
Boordevol met tips, handige en
uiterst krachtige programma's
op grafisch, muzikaal en admi¬
nistratief gebied. In deel 2 leert
u ook programma's beveiligen.
software
INTROTAPE cassette f35,75
MSX wordt op een vriendelijke
en onderwijzende manier vanuit
nul bij de gebruiker geïntrodu¬
ceerd.
DRAWS cassette f 48,-
Tekenprogramma; al binnen 10
minuten uw eerste technische of
kreatieve tekening op uw MSX
computer.
SCRIPT cassette f 58,50
Een volledig menu-gestuurdene¬
der landstad ge tekstverwerker.
BASIC HANDBOEK
A.C.J.Groeneveld
IN VOORBEREIDING:
MSX 2 BASIC Handboek
ISBN 90 6398 221 6 + f 56,50
MSX 2 Uitbreidings Handboek
ISBN 90 6398 222 4 + f 37,50
MSX 2 Toepassings Handboek
ISBN 90 6398 223 2 ± f 29,75
MSX 2 Zakboekje
ISBN 90 6398 224 0 ± f 27,50
PTC PRINT is het orgaan van de Vere¬
niging van Philips Thuiscomputerge-
bruikers PTC. Het blad wordt gratis
toegezonden aan de leden van de ver¬
eniging. De contributie bedraagt f.35,-
per jaar. Aanmelding lidmaatschap:
Bureau PTC
Postbus 67
5600 AB Eindhoven
Telefoon: (040) 78 45 37
PTC PRINT verschijnt zes maal per
jaar
Oplage: 10.000
Hoofdredacteur
Rob Geutskens
Eindredacteur
Lizet van Os
Redactieleden
Jan Braicks
Hans Coolen
Wim van den Eijnde
Klaas Robers
Redactiesecretariaat
Lizet van Os
Medewerkers aan dit nummer
H. Allaries
G.D. Bakker
Rob Cordes
Jan Gieles
Herman Heijting
Dirk Hezius
Dirk Kroon
Peter Lundahl
Peter van Overbeek
Wim Tak
Janco Verduin
Typografie
Ben Arts
Ardi de Haas
Kopij
PTC PRINT wordt voor een belangrijk
deel gevuld met bijdragen van de le¬
den. Korte en lange bijdragen op elk
niveau zijn van harte welkom. Eventu¬
ele bewerking van de kopij zal in over¬
leg met de auteur plaatsvinden. Zend
uw bijdrage bij voorkeur in schrijfma-
chineschrift of op cassette (Tekstbe¬
werking 1, Text 2000, Minitext) naar
het redactieadres.
Eventuele programma-”listings” op
blanco papier; in geen geval op zebra-
Ik weet het; ik weet het. Ik doe het zelf ook vaak: het
redactionele commentaar overslaan. Daar staat nu een¬
maal zelden informatie in waarmee ik iets kan doen.
Toch is het misschien wel eens nuttig even een blik te
werpen op deze kolom omdat er zo af en toe dingen in
staan die misverstanden, onnodig werk en ergernis kun¬
nen voorkomen. Dat is maar weer eens gebleken.
Nogmaals: de MSX-Nieuwsbrief
Bij het februari-nummer van PTC PRINT hebben wij voor het eerst een MSX-
Nieuwsbrief gevoegd. In ”Van de redactie” in dat nummer heb ik uitvoerig be¬
schreven waarom we hebben gekozen voor het combineren van P2000- en
MSX-Nieuwsbrief. Zouden we de MSX-Nieuwsbrief op aparte vellen papier heb¬
ben laten drukken, dan waren we veel duurder uit geweest. Dat scheelt een
vrachtwagen vol papier, plus een flink bedrag aan portokosten.
We gebruiken nu de blanco achterkanten van de MSX-Nieuwsbrief om bijna
zonder extra kosten de P2000-Nieuwsbrief te verspreiden. Of andersom.
Bergt u de Nieuwsbrief op zoals de bedoeling is, dus gerangschikt op nummer,
dan zijn alleen de rechterpagina’s voor u van belang. Om nu te voorkomen dat u
in de verleiding komt te denken dat de tekst aan de achterkant doorloopt,
hebben we de twee Nieuwsbrieven ten opzichte van elkaar een halve slag ge¬
draaid. De linkerpagina’s staan dus altijd ondersteboven. De leden die ons bel¬
den met de mededeling dat ze een misdruk hadden ontvangen, hadden beter
kunnen weten. Eén lid stuurde ons de Nieuwsbrieven terug met het verzoek om
een nieuw exemplaar. Ook ten onrechte dus.
Nog meer misverstanden over de Nieuwsbrieven
De bedoeling van beide Nieuwsbrieven is dat u in de loop van de tijd zelf een
losbladig naslagwerk samenstelt over uw computer, vol met handige program-
meertips, uitleg over de werking, beschrijvingen van programma’s, hardware,
randapparatuur en noem het allemaal maar op. Nu kan elke archivaris u vertellen
dat opbergen geen kunst is, maar terugvinden wel. Er is maar één manier om te
zorgen dat u snel kunt vinden wat u zoekt, en dat is systematisch opbergen.
Daarom heeft Hans Coolen enkele jaren geleden een logisch systeem bedacht
voor het rubriceren van informatie over de P2000. Voor de MSX-Nieuwsbrief
houden we zo veel mogelijk dezelfde nummering aan.
Om een voorbeeld te geven: hoofdstuk 16 zijn BASIC-tips, paragraaf 16.5 zijn
Functies voor getallen, subparagraaf 16.5.2 gaat over de functie ASC.
U moet de losbladige Nieuwsbrieven dus eenvoudig op nummer opbergen in
een klapper. De gaatjes zitten er al in.
Een tweede misverstand komt voort uit het feit dat Nieuwsbrieven niet in volgor¬
de worden verstuurd. Als we een onderwerp hebben, kijken we in de lijst van
Hans onder welke rubriek het thuis hoort. De eerste MSX-Nieuwsbrief bevatte
alleen onderwerpen die in de hoofdstukken 15 en 16 thuishoren. In de loop van
de tijd zullen ook de andere hoofdstukken aan de beurt komen, afhankelijk van
de onderwerpen die we binnen krijgen. Enkele lezers vroegen ons de eerste 14
nummers van de MSX-Nieuwsbrief toe te sturen. Dat kan dus niet, want die zijn
nog niet verschenen.
Welke maatstaven leggen we aan?
Waarom geven we én PTC PRINT, én Nieuwsbrieven uit? Kan niet alles wat we
hebben te publiceren of in de Nieuwsbrief, of in PRINT?
Dat zou wel kunnen, maar het is niet erg praktisch. U zult het misschien niet
meteen geloven, maar als we rekenen per hoeveelheid informatie, is de Nieuws¬
brief een aanzienlijk duurder medium dan PTC PRINT. Dat komt doordat een
i
gezette tekst vee! minder papier vraagt dan een getypte. Vergelijkt u "Screen
dump” in PRINT nr. 3 en de eerste MSX-Nieuwsbrief maar eens. Als we alles
wat in PRINT staat als Nieuwsbrief zouden publiceren, zou het blad veel duurder
worden.
Daarom houden we de volgende gedragslijn aan: alleen de artikelen die van min
of meer blijvende waarde zijn, worden in de Nieuwsbrieven gepubliceerd. Aller¬
hande huishoudelijke informatie, advertenties, maar ook leerzame artikelen, ko¬
men in PRINT. Soms zal een artikel, dat eerst in PRINT heeft gestaan, worden
overgenomen in de Nieuwsbrief.
Nog één opmerking over dit onderwerp: of u met de P2000- of de MSX-Nieuws¬
brief te doen hebt, kunt u zien onder de streep op elk blad. Erg duidelijk is dat
niet. We zullen kijken of we daarin verbetering kunnen brengen.
Technische bibliotheek
Behalve de informatie die hierboven is genoemd, krijgen we ook wel eens publi-
katies die te omvangrijk of te specialistisch zijn voor PRINT of de Nieuwsbrief.
Dergelijke publikaties zullen een plaats vinden in onze Technische Bibliotheek
of de Monografieën-reeks, zoals de Monitorlisting, het P2000 Adresboekje en
dergelijke. We houden u op de hoogte.
Over nummers gesproken
Het februarinummer van PTC PRINT hebben we, zoals uit het omslag blijkt, 2e
jaargang nr. 1 genoemd. Bij nader inzien blijkt dat toch niet zo erg praktisch te
zijn. Makkelijker is het om te kunnen verwijzen naar een nummer-zonder-meer,
zonder de jaargang erbij te noemen. Daarom zijn we bij dit nummer gewoon
verder gegaan met doornummeren. Dit is nummer 5 en de februari-editie was
nummer 4. Wilt u dit even veranderen op het omslag van nr. 4, dan weten we
voortaan over welk nummer van PTC PRINT we het hebben.
Rob Geutskens
Inhoud
Colofon.
Van de redactie.
Van de voorzitter.
Van de bestuurstafel.
Van monitor tot zwart/wit TV.
Vragen staat vrij.
BASIC zonder rekenen (5).
Aanvulling op de RANDOM generator .
Programma beoordeling.
PTC Jeugd.
Tekstverwerking op de P2000
LOGO leert logisch denken.
Hemelsbreed op de MSX.
Disk-BASIC (3).
Cassettes versturen per post: een ramp'?
Uitwisselbaarheid van MSX-programma’s
Uitslag prijsvraag.
MSX-LOGO.
Open Dagen.
Getalconversie.
Nieuwe prijsvraag.
MINITEXT en printers.
Postbus 67.
Aanvulling catalogus.
ONERRORGOTO .
Berichten.
Programma’s gevraagd en aangeboden
Uit de afdelingen.
Adverteerdersindex.
Informatie over afdelingen.
Prijslijst catalogus.
1
1
3
3
4
5
7
9
10
12
12
13
14
15
19
20
21
22
24
25
26
27
31
31
32
32
33
33
34
35
36
papier (gebruik desnoods de achter¬
kant van zebra-papier). Afdrukbreed-
te van programma’s: 40 tekens per
regel. Controleer het lint voordat u de
listing afdrukt.
Redactie-adres
Redactie PTC PRINT
Postbus 67
5600 AB Eindhoven
Opgeven advertenties
Lizet van Os
Postbus 67
5600 AB Eindhoven
Telefoon: (040) 78 45 37
Advertentietarieven op aanvraag.
Opgeven kleine annonces (gratis
voor leden)
Bureau PTC
Postbus 67
5600 AB Eindhoven
Zetwerk
E.D.Tekst + Beeld,
Eindhoven
Drukwerk en verzending
Mundoprint BV,
Eindhoven
Copyright
Het overnemen van artikelen uit PTC
PRINT voor commerciële doeleinden
is niet toegestaan. Voor niet-commer-
ciële doeleinden is het overnemen van
artikelen toegestaan met schriftelijke
toestemming van de redactie en met
bronvermelding.
De redactie gaat er vanuit dat het au¬
teursrecht van ingezonden bijdragen
berust bij de inzender, omdat het on¬
mogelijk is dit te controleren. De aan¬
sprakelijkheid voor de auteursrechten
op ingezonden bijdragen ligt dus bij
de inzender.
Sluitingsdata kopij 1986
Voor het nummer dat uitkomt op
16 juni: 12 mei
15 augustus: 1 juli
15 oktober: 10 september
15 december: 10 november
2
Van de voorzitter
f»p V ' -
De kopij voor dit nummer van PTC PRINT moet uiterlijk 10
maart worden ingeleverd en als alles goed gaat, heeft u dit
nummer rond 15 april in huis. Ik weet eigenlijk niet, waarom
ik schrijf ”als alles goed gaat”, want de laatste keren ging
alles goed. Geen redenen dus, om daaraan te twijfelen.
Het is wel jammer, dat ik de medewerkers aan het PTC
weekeinde in Nieuwegein nog niet kan bedanken, want dit
vindt pas over drie weken plaats en je moet niet op de
dingen vooruit lopen. Dat heeft een studiegenoot van mij
lang geleden ondervonden. Overtuigd van te zullen slagen
voor zijn doctoraal examen, had hij verlovingsaankondigin-
gen laten drukken met zijn nieuwe titel erop. Hij moest
nieuwe kaartjes laten drukken.Wèl weet ik, dat een
groot aantal mensen intensief bezig is met de voorberei¬
ding van het weekeinde en aan hun inspanningen zal het
niet liggen, als het geen groot feest wordt.
De afgelopen maanden waren we ook weer bij een aantal
afdelingen, die hun oprichtingsvergaderingen hielden. Ei¬
genlijk zijn al die avonden in de verschillende plaatsen zo’n
beetje hetzelfde. Soms zijn er 50 mensen, soms meer dan
100. Maar altijd dezelfde enthousiaste sfeer van hobbyisten
onder elkaar. En vaak ook dezelfde vragen: Mogen we als
afdeling een eigen krantje uitgeven? Natuurlijk mag dat,
maar misschien vinden de PTC leden in andere plaatsen dit
ook wel leuk, dus stuur een exemplaar aan de redactie van
PTC PRINT.
Mogen we zelf hardware ontwerpen? Natuurlijk. Maar we¬
derom, denk even aan de ruim 8000 anderen, dus meldt
het even bij de hardware commissie. Hoe meer u zelf aan
uw afdeling doet, hoe meer de afdeling draait, zoals u dat
wilt en zoals u het leuk vindt. En daar gaat het om.
Verder ben ik dezer dagen tegen een misverstand opgelo¬
pen, dat zo snel mogelijk de wereld uit moet. Misschien
kunt u daarbij helpen.
Iemand vertelde mij, dat je om lid van de PTC te kunnen
zijn per sé een computer van het merk Philips zou moeten
hebben. Van een kennis van hem was de aanmelding als lid
van de PTC geweigerd, omdat hij een MSX computer van
een ander merk had.
U weet net zo goed als ik, dat dat niet waar is, sterker nog,
het is gelogen. Iedereen mag lid worden van de PTC, Phi¬
lips computer of niet. Echter, bezitters van andere merken
computers zullen niet altijd optimaal kunnen profiteren van
de activieiten van de PTC. De PTC zal zich alleen bezig
houden met activiteiten op het gebied van thuiscomputers,
die (ooit) door Philips zijn verkocht, zoals de P2000, de
MSX1 en de MSX2. En juist bij die MSX-en maakt het niets
uit welk merk computer je hebt gekocht, omdat (als het
goed is) elke MSX computer op dezelfde manier is opge¬
bouwd. Dus kan de bezitter van een ander merk MSX
evenveel van zijn PTC-lidmaatschap profiteren als de bezit¬
ter van een Philips MSX.
En er is nog nooit iemand niet toegelaten als lid.
Tenslotte nog dit: Dezer dagen kreeg u een acceptgiro¬
kaart toegezonden voor de betaling van de contributie voor
dit jaar. Als u nog niet betaald hebt, zou u dat dan nu even
willen doen? Een gedeelte van uw contributie gaat naar uw
afdeling toe. Die afdeling heeft dat geld hard nodig. Niet
iedere afdeling kan gratis in een school of in een fabrieks-
kantine. Binnenkort tellen we het aantal leden, dat betaald
heeft en de afdelingen krijgen op deze basis hun afdracht
overgemaakt. Als u daar niet bij bent, krijgt de afdeling
minder geld of pas veel later.
D.J. Kroon
Nieuwe afdelingen
We gaan opgewekt door met het oprichten van afdelingen!
Sinds het verschijnen van de vorige PTC PRINT zijn, weer
dankzij het enthousiaste werken van een aantal leden, de
volgende afdelingen ontstaan: Leiden, de Bollenstreek,
West-Brabant, Nijmegen en Den Bosch.
Hieronder volgen de namen en adressen van de contact¬
personen:
Afdeling Leiden: J. Bonte, Obrechtstraat 77, 2324 VM Lei¬
den. Tel.: (071) 766611.
Afdeling de Bollenstreek: J. Janson, Zeestraat 23, 2201 KH
Noordwijk. Tel.: (01719) 17451.
Afdeling West-Brabant: K. Wessels, Gladiolenstraat 10,
4695 HS Sint Maartensdijk. Tel.: (0166) 2939.
Afdeling Nijmegen: J.M. Dekkers, Aldenhof 6180, 6537 DP
Nijmegen. Tel.: (080) 444426.
Afdeling Den Bosch: B. van den Broeke, Karei de Stoute-
straat 22, 5346 PS Oss. Tel.: (04120) 24245.
Vidibus
Voor alle Viditel-abonnees: De PTC is aangesloten bij Vidi¬
tel en heeft een Vidibusnummer: 400027067.
U kunt dus ook via deze weg het bureau PTC, het PTC-
bestuur en de diverse commissies bereiken.
Van bestellen en betalen
In elk nummer van PTC PRINT vindt u een overzicht van de
artikelen, die u bij ”de winkel van Toon” kunt bestellen. U
doet veel mensen een plezier als u die bestelling plaatst via
uw eigen afdeling.
Om te beginnen u zelf, omdat de prijzen via een verzamel-
3
bestelling van een afdeling lager kunnen zijn dan wanneer
elk lid individueel bestelt bij het verzendhuis. U doet uw
afdeling een plezier omdat deze een commissie krijgt van
5% over het totaal van haar bestellingen. Tenslotte doet u
alle mensen op het bureau een plezier omdat verzamelbe-
stellingen werk besparen.
Hoe bestelt u bij uw afdeling?
U kijkt op de lijst in PTC PRINT naar de prijzen, vermeld
onder het hoofdje Ledenprijs via afdeling en u stort de
desbetreffende bedragen op de bank- of girorekening van
uw afdeling, onder vermelding van het codenummer van
het bestelde artikel én uw lidnummer.
Misschien is het ook mogelijk op de afdelingsbijeenkomst
te bestellen en contant te betalen. Het afdelingsbestuur
zendt vervolgens alle bestellingen op een verzamelbestel-
lijst naar het bureau PTC en maat het totaal daarvoor ver¬
schuldigde bedrag over. Zodra dit bedrag ontvangen is
stuurt het bureau PTC de bestelde artikelen naar de afde¬
ling. Dit betekent dat u het bestelde artikel in de meeste
gevallen op een volgende afdelingsbijeenkomst afgeleverd
krijgt.
Rechtstreeks bestellen bij het verzendhuis
Als u rechtstreeks bij het verzendhuis bestelt doet u dat
dan op de volgende manier:
Programma-cassettes voor de P2000:
Het bestellen van programma-cassettes voor de P2000
kan uitsluitend via
giro 4 74 89 74
t.n.v. Bureau PTC
Botter 69
Schiedam
Overige artikelen:
Alle overige artikelen, dus ook de MSX programma-casset¬
tes, kunnen besteld worden via
giro 4 74 43 91
t.n.v. Bureau PTC
Postbus 67
Eindhoven
Betaling kan uitsluitend met behulp van een bank- of giro-
overschrijvingsformulier gebeuren. Nadat het geld van uw
bank- of giro-rekening is afgeschreven en op onze giro¬
rekening is bijgeschreven, kan door ons verdere actie wor¬
den ondernomen. Vermeld altijd duidelijk uw lidnummer en
schrijf duidelijk op om welke bestelling het gaat. Stuur al¬
stublieft geen bank- of girocheques of contant geld. Daar
kunnen we niets mee beginnen en het levert slechts pro¬
blemen en vertraging op.
Herman Heijting
Van Monitor tot zwart/wit TV
Klaas Robers
Bij het bureau PTC is een publicatie verkrijgbaar waarin
ons clublid Hans Allaries beschrijft hoe een zwart/wit tele¬
visietoestel ook te gebruiken is als monitor. Het betreft hier
een kleine draagbare ontvanger van het type X 12 T 740 /
82 t/m 89. Omdat deze apparaten geschikt zijn voor voe¬
ding uit het 220 Volt lichtnet, of uit een 12 Volt accu, heb¬
ben zij ”van nature” netscheiding. De beschreven schake¬
ling werkt precies zoals u dat wilt hebben. Als alleen de TV
aanstaat, dan werkt hij gewoon als TV-ontvanger. Wordt
ook de computer aangezet, dan verdwijnt het TV-beeld en
maakt plaats voor het computer-beeld. Evenzo wordt het
TV-geluid vervangen door het computer-geluid. Niet met
een schakelaar of een speciaal kanaal, nee, volautomatisch
door het inschakelen van de computer. Het werkt zowel
met een P2000T als met een MSX.
Omdat niet'iedereen een TV-toestel van dit type ter be¬
schikking heeft en de beschrijving uitgebreid en gedetai-
leerd is, wordt deze niet in PTC PRINT afgedrukt. Maar als
u geïnteresseerd bent kunt u de beschrijving telefonisch
bestellen bij de redactie. De kosten zijn f.6, = (inclusief
BTW en verzendkosten).
Enkele interessante punten voor wie nieuwsqieriq is qe-
worden:
- Het is niet nodig het toestel echt uit elkaar te halen.
Alleen de achterwand wordt verwijderd en u kunt dan
overal bij.
- Er moet een schakelingetje op gaatjes-print gemaakt
worden, dat in de TV wordt gemonteerd. Uitgebreide
tekeningen!
- Via een DIN-plug, waarvoor in de ontvanger reeds een
plaats aanwezig is, wordt de computer met een simpel
kabeltje aangesloten.
- Er is een zogenaamde ”gamma-correctie” ingebouwd,
waardoor donkere letters (blauw) toch nog redelijk
leesbaar zijn.
- De scherpte is goed, ook voor 80 letters op een regel.
Hebt u zo’n TV en bent u een beetje thuis in het ”electroni-
ca-knutselen”, dan zult u aan de hand van deze oude rot in
het TV-vak een sublieme "ombouw” van uw TV maken. En
een goede monitor is een fijn ding; zeker als hij zonder
meer ook als TV te gebruiken is!
One-liner voor MSX
Een aardige ”one-liner” (een programma dat maar uit één
regel bestaat) is de volgende:
10 SCREEN 1:WIDTH 32:KEY OFF:COLOR 1
,15,1:FOR 1=1 TO 640:PRINT CHR$(255)
;:NEXT:FOR I =192 TO 223:PRINT CHR$(
I);:NEXT:FOR 1=65 TO 95:PRINT CHR$(1
) CHR$ CD;: NEXT: END
Wandel met de cursortoetsen over het scherm nadat u het
programma hebt laten uitvoeren en zie wat er gebeurt.
RobG.
Vragen
staat
Vragen over de P2000, de VG8010, de
VG8020, de VG8230 en andere kleine Phi¬
lips computers kunt u als PTC-lid schrifte¬
lijk indienen bij
Bureau PTC
Postbus 67
5600 AB Eindhoven
U krijgt dan in principe schriftelijk ant¬
woord van iemand die deskundig is op het
betrokken gebied. Is de redactie van me¬
ning dat waarschijnlijk meer leden van de
PTC belangstelling hebben voor het ant¬
woord, dan kan zij zonder overleg met de
vragensteller vraag en antwoord publice¬
ren in deze rubriek. U hoeft niet bang te
zijn dat u misschien een "domme” vraag
stelt; veel gebruikers van thuiscomputers
zijn beginnelingen en worstelen met de¬
zelfde vragen. Wilt u echter beslist niet
dat uw vraag en het antwoord daarop
worden gepubliceerd, vermeld dat dan
uitdrukkelijk in uw brief.
Als u een vraag stelt waarin u verwijst
naar een artikel uit een computer-tijd-
schrift anders dan PTC PRINT, wilt u dan
een copie van het betreffende artikel
meesturen. Het is voor ons niet haalbaar
alle computerbladen door te lezen.
In het vorige nummer is iets mis gegaan
met de twee vragen en de antwoorden
daarop, die we wilden publiceren. Daarom
volgen ze hier beide opnieuw.
Disk-BASIC
Toen ik las dat jullie ook aandacht gingen besteden aan
de P2000M, kon ik een kreet van vreugde niet onder¬
drukken. Aan alle programma’s die in de nieuwsbrieven
staan, waarin met PEEK en POKE wordt gewerkt met
adressen van de interpreter, had ik namelijk niets aan¬
gezien deze adressen niet overeenkomen met de adres¬
sen van mijn interpreter. Op zich vind ik dat ontzettend
jammer aangezien er leuke programma’s bij staan. En ik
zag in een latere editie van PTC PRINT al een converte-
ringslijst of programma verschijnen dat de juiste adres¬
sen zou aangeven voor de P2000.
Echter, toen ik las dat jij gebruik maakte van een in-
steekmodule waar 16 K van je BASIC in stond, en dat jij
de M-toets van het kleine toetsenbord gebruikte om in
de edit mode te komen, begreep ik wel dat ik te vroeg
gejuicht had. Om in de edit mode te komen gebruik ik
namelijk CODE (CTRL) A of CODE !. Tevens zit mijn BA¬
SIC niet in een insteekmodule. Ik ben namelijk in het
bezit van (en ik neem aan ik niet alleen) een P2000M die
werkt onder CP/M. In sleuf 1 zit bij mij de insteekmodule
P2919 CP/M 2.2. Hiermee kan ik natuurlijk ook met BA¬
SIC werken. Dit BASIC-programma staat echter in zijn
geheel op disk, namelijk BASIC 5.1 CP/M, 24 K, ook van
Microsoft.
G. Schreurs - Ede
De serie artikelen over Disk-BASIC gaat in de eerste plaats
over de insteekmodule P2306 met de bijbehorende sys-
teemschijf, al veroorloof ik mij af en toe uitstapjes naar
andere BASICs die ik ken; met name Cassette- en MSX-
BASIC. De CP/M-versie van Disk-BASIC is daar niet bij om
de eenvoudige reden dat ik die niet bezit. Ik werk met een
P2000T, uitgebreid met Floppy Disk Interface en twee
loopwerken voor 5V4”-schijven. Bij deze versie is de ge-
heugenindeling van de P2000 in grote trekken gelijk aan
die bij gebruik van Cassette-BASIC. Bij gebruik van CP/M
wordt echter de hele geheugenindeling van de computer
overhoop gehaald. Het toepassingsprogramma, in uw geval
Disk-BASIC, begint dan op adres &H0100, zoals ook uit de
uitdraai blijkt die u hebt meegestuurd. Dit betekent dat u
aan de adressen die ik in de artikelen vermeld niet zo veel
hebt. Maar ik zou me sterk vergissen als de CP/M-versie
van Disk-BASIC heel erg zou afwijken van de versie in in¬
steekmodule + systeemschijf. Dat blijkt ook uit uw uit¬
draai: de tokentabel, die bij de CP/M-versie klaarblijkelijk
op &H023B begint, heeft exact dezelfde opbouw als de
versie die ik heb. Zelfs GOTO en GO TO komen in de to¬
kentabel voor. En ook de stukken van de tabellen met
sprongadressen, die op uw uitdraai te zien zijn, hebben
precies dezelfde opbouw, al verschillen de adressen. Ik
denk dus dat u met wat ik schrijf over Disk-BASIC een
eindje op weg wordt geholpen met het doorgronden van
uw CP/M-versie, zeker in het praktische gebruik ervan.
Rob G.
Ongeremd REMmen
In de meeste programma’s worden opmerkingen, die het
programma moeten verduidelijken, opgenomen met be¬
hulp van een REM-instructie. Soms kom ik echter de
instructie ’ tegen. Maakt het veel verschil of ik REM of ’
gebruik?
Dick van den Heuvel - Oudorp
Met deze twee instructies is iets merkwaardigs aan de
hand. Ze doen hetzelfde, dat wil zeggen dat ze niet door de
computer worden uitgevoerd, maar de geheugenruimte die
ze vragen is verschillend. Probeert u maar eens de volgen¬
de simpele programmaatjes:
10 REM Uitleg
20 PRINT FRE(O)
10 'Uitleg
20 PRINT FRE(O)
Uw eerste indruk is ongetwijfeld dat het eerste programma
meer geheugenbeslag legt dan het tweede. REM plus spa¬
tie zijn vier tekens, en een apostrof is maar één teken.
Maar regel 20, die de vrije geheugenruimte berekent, helpt
u uit de droom. Bij het tweede programmaatje is de vrije
geheugenruimte altijd één minder dan bij het eerste. Dat
geldt voor de P2000T met Cassette- of Disk-BASIC, voor
MSX en voor de :YES; ik denk dat het voor alle BASICs
geldt.
De oplossing van het raadsel is dat BASIC de instructie
REM vertaalt in een enkele tokencode. Daarbij komt de
spatie. Die vragen samen twee geheugenplaatsen; twee
minder dan u misschien dacht. U kunt dus ongeremd REM-
men.
De instructie ’ wordt door BASIC vertaald in drie codes,
namelijk de codes voor een dubbele punt, de code voor de
apostrof en de code voor REM. Die vragen samen drie
geheugenplaatsen, één meer dan REM + spatie.
Zoals u weet wordt de dubbele punt gebruikt om twee
instructies te scheiden. Dat doet het vermoeden rijzen dat
u de dubbele punt kunt weglaten als u een ’-instructie ge¬
bruikt na een instructie die door de computer moet worden
uitgevoerd. Dat blijkt inderdaad zo te zijn. Probeert u maar:
10 PRINT 10*3'Dit is een berekening
10 PRINT 10*3:REM Dit is een
berekening
U zult zien dat ook het eerste programma goed werkt; de
computer slaat alles dat na de apostrof komt gewoon over.
De dubbele punt, die de tweede instructie scheidt van de
eerste, staat wel in het geheugen al ziet u hem niet op het
scherm. Bovendien blijkt dat het geheugenbeslag in beide
gevallen gelijk is omdat u in het tweede geval de dubbele¬
punt moet gebruiken om de instructies te scheiden.
RobG.
Dwarsprinten met MINITEXT
Sinds enige tijd maken we op onze basisschool ”De
Berkhaag” in Herwen veelvuldig gebruik van MINITEXT.
Voor het printen gebruiken we een JUKI-6100 printer.
Deze combinatie bevalt ons erg goed. In de loop der tijd
hebben we MINITEXT in nauwe samenwerking met de
auteur aangepast aan onze wensen en we zijn er dan
ook uitermate tevreden mee. Graag zouden we echter
willen weten of het mogelijk is met MINITEXT A-4 papier
dwars te gebruiken.
W. Woonings, Herwen.
Uw vraag of MINITEXT ook voor A-4 dwars te gebruiken is,
kan positief beantwoord worden. Hiervoor moet uiteraard
de printbreedte groot genoeg zijn. Dat is overigens bij de
printer die u gebruikt, de JUKI-6100, zeker het geval.
Aangezien regels van meer dan 80 tekens naast elkaar niet
meer goed leesbaar zijn op uw monitor (de editor is ook
maar 80 karakters breed), moet u de tekst in twee of meer
kolommen onderbrengen. U gaat dan als volgt te werk:
- Zet het papierformaat op A-5.
- Zet het aantal regels per pagina op maximaal.
- Zet de regelbreedte op ongeveer 46.
- Voer de complete tekst in.
- Tel een aantal printregels van boven af, gelijk aan het
maximum aantal minus boven- en ondermarge.
- Voeg daar een nieuwe regel in als volgt:
$OB Zet printer terug
Dit verschijnt dan bij onderbreking op het scherm. U kunt
ook in het bestand het juiste aantal Vorige regel’-com-
mando’s opnemen (DEF en pijl omhoog, boven apes-
taartje). Dan gaat dit vanzelf.
- Voeg daarna nog een regel in met alleen $EM-50 (on¬
geveer).
- Zet het papier er dwars in en start.
De printer zal dan eerst in het linkerdeel printen en stop¬
pen. U draait hem dan weer met de hand naar de begin-
stand en geeft ENTER. Dan wordt de tweede helft geprint.
Moeten er meerdere pagina’s komen, dan de procedure
herhalen en de Extra Marge afwisselend op 0 en 50 zetten.
Er zijn al heel wat mensen, die op deze manier werken.
Jan Gieles
Briefpapier met MINITEXT
Ik zou graag zelf via MINITEXT een briefhoofd willen
afdrukken op mijn briefpapier en de tekst en lay-out
daarvan bewaren op een bandje. Kan dat, en zo ja, hoe
moet ik dat aanpakken?
W. Woonings, Herwen.
Het is inderdaad erg handig om een bandje te hebben,
waarop uw briefhoofd staat. Als u dan een brief wilt schrij¬
ven en u laat dat bestandje in kunt u direct beginnen. Hier¬
onder een voorbeeld van een mogelijk ontwerp voor een
dergelijk briefhoofd. Het zal wel niet direct passen maar
het geeft u in ieder geval een idee:
$BR-4
$EM-40
Naam
Adres
Plaats
$BR- 3
$EM-52
Datum
$BR- 2
$EM
Begin
Als u zo’n bestandje heeft en inlaadt, dan schrijft u de
gegevens gewoon over de aanduiding daarvan heen. Dus 9
januari 1986 over datum heen, enz. U hoeft dan niet meer
de posities uit te zoeken. Voorwaarde is wel, dat het papier
altijd op dezelfde manier in de machine wordt gezet.
Jan Gieles.
6
BASIC zonder rekenen (5)
Dirk Hezius
Deze keer zullen we het bestandspro-
gramma, waarmee we de vorige keren
hebben gewerkt, eens gaan sorteren. Dat
wil zeggen, dat we de volgorde van de
NAW (Naam-Adres-Woonplaats) gege¬
vens volgens een bepaald criterium gaan
veranderen. Hiertoe maken we gebruik
van een geheel nieuwe BASIC-instructie,
14 De FOR-NEXT lus
De tekst van de FOR-NEXT lus kunnen we zien aan het
volgende voorbeeld:
10 FOR 1=1 TO 10
20 PRINT I
30 REM Hier mag nog veel meer
gebeuren
40 NEXT I
Als we dit progamma intikken en daarna RUN geven, zien
we de getallen 1 tot en met 10 op het scherm verschijnen.
Daarna is het programma klaar.
Op regel 10 geven we de opdracht, dat een teller, I, moet
lopen van 1 tot 10. Voor elke waarde van deze teller wordt
een stukje BASIC-programma uitgevoerd. Dat kan één en¬
kele instructie zijn (zoals hierboven het afdrukken van de
waarde van de teller), maar het kan ook een heel groot
BASIC-programma zijn met LINEINPUT’s, IF-THEN’s en
GOTO’s. Dit BASIC-programma eindigt zo gauw de in¬
structie NEXT I gevonden wordt. Daarna wordt het stukje
BASIC-programma opnieuw gestart, maar met de waarde
van de teller (I), die 1 hoger ligt. Na het opnieuw passeren
van NEXT I, gebeurt het nog een keer en zo tot de hoogst
aangegeven waarde van de teller is afgewerkt (het getal
achter TO, in dit voorbeeld dus 10). Daarna gaat het pro¬
gramma door met de eerste instructie na NEXT I.
Het klinkt allemaal nogal moeilijk, maar dat valt wel mee.
Misschien kan het volgende voorbeeld wat opheldering ge¬
ven: Er zit een aantal werknemers van een groot bedrijf in
de wachtkamer van de dokter. Elk heeft zo z’n eigen re¬
den, waarom het absoluut onmogelijk is vandaag aan het
werk te gaan.
De dokter roept: ”Eerste patiënt” (In het programma:
1 = 1). De dokter onderzoekt de patiënt, schrijft wat op een
formulier en roept dan ”de volgende!” (NEXT I).
Vervolgens verricht de dokter dezelfde handelingen op pa¬
tiënt 2. Het resultaat hoeft niet hetzelfde te zijn als bij pa¬
tiënt 1, want patiënt 1 is niet dezelfde als patiënt 2.
De dokter roept weer ”de volgende!” en hetzelfde pro¬
gramma wordt afgewerkt op patiënt 3.
Als de laatste patiënt geweest is, roept de dokter weer ”de
volgende!”, maar er komt niemand meer en de dokter gaat
koffie drinken. Zo ongeveer kunt u zich een FOR-NEXT lus
in BASIC voorstellen.
14.1 Sorteren met FOR-NEXT
We gaan weer uit van ons bestandsprogramma van de vori¬
ge keren. Laat ik het nog even in een weer andere mogelij-
namelijk de FOR-NEXT lus.
Naast de IF-THEN constructie, die we al
behandeld hebben, behoort de FOR-NEXT
lus tot de belangrijkste instructies. Niet
alleen in BASIC is dat zo. De lus en de
vergelijking behoren in de meeste pro¬
grammeertalen tot de belangrijkste ele¬
menten van een programma.
ke vorm laten zien:
10 DIM BESTANDS(2,10)
20 FOR 1=1 TO 10:READ BESTANDS(0,1),
BESTANDS(1,1),BESTANDS(2,1):NEXT I
1000 DATA Bureau PTC,Postbus 67,
Eindhoven
1010 DATA Dirk Hezius,Zomerkade 8020,
Westkant'
1020 DATA Miniware BV,Postbus 3611,
Baexem
1030 DATA AVO Techniek,Ginderover,
Heeze
1040 DATA n5,a5,w5
1050 DATA n6,a6,w6
1060 DATA n7,a7,w7
1070 DATA n8,a8,w8
1080 DATA n9,a9,w9
1090 DATA nlO,alO,wlO
Ho, ho, hoor ik u al zeggen, dat gaat me wel wat hard. Nu
gebruik je de FOR-NEXT lus ook al om gegevens uit een
DATA bestand in te lezen met READ. Inderdaad, dit is de
eerste toepassing van een FOR-NEXT lus. Echter, aange¬
zien we een vast "einde” hebben van de FOR-NEXT lus,
moeten we wel zorgen, dat er voldoende DATA gegevens
zijn. Anders zou de computer proberen gegevens te lezen,
die er niet (meer) zijn. In zo’n geval krijgen we een foutmel¬
ding: Out of DATA. Maar in het bovenstaande voorbeeld
gaat alles goed; er zijn genoeg gegevens.
Nu gaan we de namen en adressen sorteren en wel op de
naam van de geadresseerde. De naam staat in de nulde
kolom van het array BESTAND$. Hiervoor gebruiken we
een combinatie van de FOR-NEXT lus en IF-THEN. En pas¬
sant gebruiken we nog een nieuwe instructie, namelijk
SWAP. SWAP betekent: verwissel de waarden die erachter
staan. Eerst toch maar even een voorbeeld:
100 FOR 1=2 TO 10
110 IF
BESTANDS (0, I ) = >BESTANDS (0,1-1)
THEN GOTO 130
120
SWAPBESTAND$(0,1),BESTANDS(0,1-1):
SWAPBESTANDS(1,1),BESTANDS(1,1-
1 ) :
SWAPBESTANDS(2,1),BESTANDS(2,1-1)
130 NEXT I
7
Kijk dat maar eens even rustig aan alvorens we verder
gaan. We lopen dus, met de FOR-NEXT lus, het array BE¬
STANDS door en als blijkt, dat twee opeenvolgende namen
gelijk zijn of op alfabetische volgorde staan, dan springt
het programma naar regel 130. Is dat niet zo, dan worden
zowel Naam, Adres als Woonplaats verwisseld met de
SWAP-instructie. Het teken = > betekent ”is gelijk aan of
is groter dan”. En ”groter dan” betekent alfabetisch ”hoort
na”, dat wil zeggen de naam staat op de juiste plaats.
Merk op dat de FOR-NEXT lus met 2 begint en niet met 1.
We vergelijken namelijk een naam met de vorige in de
reeks. Dat wil zeggen, dat we beginnen met het vergelijken
van de tweede naam met de eerste. We hoeven dit niet zo
te doen. We kunnen ook schrijven:
100 FOR 1=1 TO 9
110 IF
BESTANDS (0,1 + 1) = >BESTANDS CO, I)
THEN GOTO 130
120
SWAPBESTANDS(0,I),BESTANDS(0,1 + 1):
SWAPBESTANDS(1,1),BESTAN-
D$(1,1+1):
SWAPBESTANDS(2,I),BESTANDS(2,1 + 1)
130 NEXT I
Dit programma is nog niet compleet. Het kan natuurlijk
voorkomen, dat een NAW helemaal achteraan staat, terwijl
het helemaal vooraan hoort te staan. Dan is een enkele
doorloop niet voldoende. We moeten dus kijken of er in de
FOR-NEXT lus een SWAP (wissel) is uitgevoerd. In dat ge¬
val moeten we de lus nogmaals doorlopen. Aan het pro¬
gramma voegen we een zogenaamde ’Vlag” toe, die we
WISSEL noemen. ALs er een verwisseling heeft plaatsge¬
vonden, dan wordt ”de vlag gehesen”, met andere woor¬
den WISSEL heeft de waarde 1 gekregen. In dat geval
wordt nog eens gesorteerd. Is WISSEL gelijk aan nul, dan
gaat het programma verder.
90 WISSEL=0
100 FOR 1=2 TO 10
110 IF
BESTANDS (0, I) = >BESTAND$ (0,1-1)
THEN GOTO 130
120
SWAPBESTANDS(0,I),BESTANDS(0,1-1):
SWAPBESTANDS(1,1),BESTANDS(1,1-
1 ):
SWAPBESTANDS(2,1),BESTANDS(2,1-
1 ) :
WISSEL=1
130 NEXT I
140 IF WISSEL=1 THEN GOTO 90
Tenslotte laten we het gesorteerde bestand zien met een
volgende FOR-NEXT lus.
200 REM Toon bestand
210 FOR 1=1 TO 10
220 PRINT BESTANDS(0,I)
230 PRINT BESTANDS(1,I)
240 PRINT BESTANDS(2,I)
250 NEXT I
En tot uw verbazing ziet u, dat nlO alfabetisch ineens bo¬
ven nl staat en ook boven n5. Dat klopt. Bij het vergelijken
van de namen, wordt geen rekening gehouden met een
eventuele cijfermatige betekenis van de tekens in de naam.
En een 1 komt "alfabetisch” voor een 5.
14.2 Lussen in elkaar
Binnen een FOR-NEXT lus kunnen andere FOR-NEXT lus-
sen worden uitgevoerd. Dit noemen we met een engels
woord "geneste lussen”. Wel moeten we de binnenste
FOR-NEXT lus een andere teller geven dan de buitenste,
anders raakt de computer in de war. Kijk weer eens naar
het bestandsprogramma. Zowel bij het inlezen, bij het ver¬
wisselen als bij het afdrukken, moet er iets drie keer ge¬
beuren. Dat kan korter in een "geneste” FOR-NEXT lus.
(En op de meeste computers gaat het sneller ook).
10 DIM BESTANDS(2,10)
20 FOR 1=1 TO 10
30 FOR J=0 TO 2
40 READ BESTANDS(J,I)
50 NEXT J
60 NEXT I
90 WISSEL=0
100 FOR 1=2 TO 10
110 IF
BESTANDS (0, I) = >BESTAND$ (0,1-1)
THEN GOTO 130
120 WISSEL=1:FOR J=0 TO 3
SWAPBESTANDS(J,I),BESTANDS(J,I-
1 ):
NEXT J
130 NEXT I
140 IF WISSEL=1 THEN 90
200 FOR 1=1 TO 10
210 FOR J=0 TO 2
220 PRINT BESTANDS(J,I)
230 NEXT J
240 PRINT
250 NEXT I
1000 DATA .
Lussen moeten wel geheel "binnen elkaar liggen”. Dus
10 FOR 1=1 TO 10
20 FOR J=1 TO 5
100 NEXT J
110 NEXT I
De J-lus ligt hier dus geheel binnen de l-lus. Kijk maar eens
wat er gebeurt, als u regel 100 en 110 verwisselt, zodat de
J-lus buiten de l-lus uitsteekt.
Nog enkele opmerkingen over de FOR-NEXT lus:
In de gekozen voorbeelden hebben we de lussen laten
beginnen met 1 of 0. Dat hoeft niet. Een FOR-NEXT lus
mag in principe met elk getal beginnen. Zelfs is toege¬
staan, dat het getal ter plaatse wordt uitgerekend, dus
10 FOR 1=7 TO 25
20 FOR J=I+1 TO 1 + 10
100 NEXT J
110 NEXT I
De teller van de lus hoeft niet altijd met 1 te worden opc
hoogd. We kunnen de teller bijvoorbeeld alleen oneven
waarden geven met
10 FOR 1=1 TO 100 STEP 2
8
In dit geval neemt de teller de waarden 1,3, 5 tot en met 99
aan.
Achter STEP mag ook een negatief getal staan. In dat geval
wordt de lus van "boven naar beneden” doorlopen:
10 FOR 1=25 TO 3 STEP -1
15 Over CHR$
De vorige keer kwam ineens een uitdrukking CHR$(12) z’n
neus de hoek omsteken. Wat moeten we ons hierbij voor¬
stellen?
Wij werken met symbolen voor letters, cijfers en andere
tekens. De naam DIRK bestaat uit vier symbooltjes, die
voor ons een visuele betekenis hebben. De computer kan
niet kijken en werkt met nummers. DIRK staat in z’n ge¬
heugen als 68,73,82,75. Soms echter moet de computer
iets op het scherm zetten. Nu staat er in zijn geheugen een
tabel, waarin alle symbolen staan met het bijbehorende
nummer, waaronder de computer het symbool kent.
CHR$(nummer) zet het nummer om in het bijbehorende
symbool. Tikken we, bijvoorbeeld, PRINTCHR$(68) dan
verschijnt de letter D op het scherm, voor de computer
blijft het nummer 68.
Voor de P2000 zijn de nummers 32 tot en met 127 in ge¬
bruik als leestekens, cijfers en letters. U vindt deze tabel
op pagina 141 van de P2000 handleiding. Nummers kleiner
dan 32 geven met PRINTCHR$(nummer) geen teken op
het scherm, maar "besturen” iets. Zo geven
PRINTCHR$(16)CHR$(17)CHR$(18)CHR$(19)
aanleiding tot verplaatsing van de cursor (respectievelijk
naar links, omhoog, omlaag en naar rechts).
Met
PRINTCHR$(4)CHR$(Vert)CHR$(Hor)
wordt de cursor naar regel "Vert” en kolom "Hor” ge¬
stuurd.
PRINTCHR$(12) maakt het scherm schoon.
De nummers 129 tot en met 135 zijn zogenaamde "kleur-
omschakelkarakters”. Zij kleuren de rest van de schermre-
gel, bijvoorbeeld
PRINTCHR$( 130)"Groene tekst”CHR$(131)"Gele tekst”
laat een deel van de tekst in groen en een deel in geel
verschijnen. Zo zijn er omschakelkarakters voor achter-
grondkleur, knipperen en zo meer. Alles is te vinden in de
handleiding.
Karakters vanaf 145 vertellen de P2000 dat de rest van de
regel niet in letters of cijfers getoond moet worden, maar in
de overeenkomende grafische blokjes (en in kleur). Tot
zover over de P2000.
De MSX doet het allemaal geheel anders. Er zijn geen
kleuromschakelkarakters of grafische omschakelaars. Ook
de cursorbesturing gaat niet met een enkele CHR$. De
hele nummering van 1 tot en met 255 is gemaakt met let¬
ters, cijfers, speciale letters (voor Frans, Duits, Zweeds,
Grieks, Spaans, etc.) en speciale symbooltjes. De volgen¬
de keer zullen we de MSX-tekenset en de toetsenborden
behandelen en nog wat kleine aanvullingen geven op de tot
nu toe behandelde BASIC-instructies. Tot het juninummer
van PTC PRINT dus!
Aanvulling op de RANDOM generator
In het vorige nummer van PTC PRINT "schudden” van de RANDOM generator
stond een stukje over het gebruik van de moet voor de MSX wat worden aangevuld.
RANDOM generator. Het verhaal over het Voor de P2000 blijft alles zoals het was.
Als we in de MSX de RANDOM generator aanroepen met
een negatief getal, dan wordt de reeks random getallen
opnieuw gestart. Bij MSX is het nu zo, dat het startpunt
afhankelijk is van de waarde van het negatieve getal, dat
we meegeven. Probeer maar eens:
FOR I%=1 TO 10: PRINT RND(-I°/o) : NEXT
We zien dan een rij getallen op het scherm verschijnen, die
alle verschillend zijn. Echter, bij nauwkeuriger beschou¬
wing, blijkt alléén het eerste cijfer te verschillen en nog
berekenbaar te zijn vanuit 1%. Beter gaat het, als we 1%
groter nemen dan 10. Het lijkt wel of de willekeur in de
cijfers groter wordt als het aantal bytes van het "zaad”
groter is. Helemaal goed lijkt het te gaan, als we in de
bovenstaande programmaregel RND(I%) vervangen door
een functie, die een dubbel precisiegetal afgeeft, bijvoor¬
beeld EXP(I%).
"Schudden” we de RANDOM generator met RND(TIME),
zoals in sommige instructieboekjes wordt gesuggereerd,
dan blijken slechts de eerste vijf cijfers te verschillen, de
volgende negen cijfers zijn hetzelfde. Ook bij herhaald aan¬
roepen van de RANDOM generator na deze start, blijken
alleen de eerste vijf cijfers te veranderen. Als u dus meer
dan vijf cijfers random wilt hebben, dan blijft POKE-n no¬
dig, maar op alle acht bytes-van &HF857 tot &HF85E, an¬
ders kunt u volstaan met RND(-TIME), waarbij dan de be¬
perkingen van het niet zo willekeurig zijn van TIME blijven
gelden.
Overigens, er stond een storende fout in het programmaat¬
je over "trekken zonder terugleggen”. Hier volgt de juiste
tekst:
10 DIM LO%(20)
20 FOR I%=1 TO 20 : LO% (1%) =1%: NEXT
30 FOR I%=20 TO 2 STEP -1
40 J%=INT (RND Cl) *1%) +1
5 0 SWAP LO% ( jo/o ) , LO% (I % )
60 NEXT
D.J. Kroon
9
10
Programma beoordeling
Hoe komt uw programma veilig door de ledentest?
Peter Lundahl
Eigenlijk had ik dit niet hoeven schrijven
want (bijna) alles is al eens gepubliceerd.
Maar vooral voor de nieuwe creatievelin-
gen staat hier nog een keer op een rijtje
waaraan uw zelfgeschreven programma
bij voorkeur moet voldoen als u het wilt
insturen voor de ledentest.
Wanneer een MSX- of P2000-programma wordt aangebo¬
den bij de Programma Administratie, dan volgt het de vol¬
gende (vaak moeizame) weg. In een eerste ronde wordt
door enkele commissieleden bekeken of het programma
geschikt is voor de ”ledentest”. Is dat het geval, dan volgt
de tweede ronde: de ledentest. Van deze ledentest krijgt
de auteur van het programma een stapel beoordelingsfor¬
mulieren terug met opmerkingen van diverse leden. In
Eindhoven zit er tegenwoordig vaak nog een samenvatting
bij van de belangrijkste punten. Aan de hand hiervan kan
de auteur zijn programma, indien nodig, aanpassen. Het
komt voor dat dat helemaal niet nodig is, maar óók dat het
totaal herschreven moet worden, en alle variaties daar tus¬
sen in. Daarna volgt de eindronde, waarin gekeken wordt
of bijvoorbeeld geen nieuwe fouten zijn ontstaan door de
programmawijziging, of de opmerkingen van de ledentest
ter harte zijn genomen, enz. En dan tenslotte, als het alle
ellende heeft doorstaan, komt het programma in Viditel te¬
recht.
Hoe vaak een programma tussen auteur en commissie
en/of de leden heen en weer gaat hangt vooral af van de
aandacht die de auteur aan zijn programma heeft besteed.
In dit artikel kunt u lezen op welke punten in de diverse
ronden wordt gelet. Als u die punten goed in de gaten
houdt, bent u van de meeste narigheid af.
Behalve natuurlijk naar echte programmafouten wordt ge¬
keken naar:
1. De standaard staart
2. Het achterlaten van een schone printer na stoppen van
het programma
3. Bladeren in en printmogelijkheid van de uitleg
4. Terugspoelautomaat activeren (alleen bij P2000)
5. Kom niet aan de baudrate van de printer
6. Let op de mensvriendelijkheid
7. Overweeg eerst: is er al iets soortgelijks, beters of an¬
ders
8. Is er wel een computer voor nodig of gaat het zonder
beter
De standaard staart
Voor alle programma’s geldt dat u bij voorkeur aan het
einde van de listing de volgende staart op dient te nemen:
65520 REM PTC
65521 REM programma nr. ???
65522 REM naam van het programma
65523 REM versie Nx.x d.d. dd-mm-jj
65524 REM vrijgegeven d.d. dd-mm-jj
65525 REM copyright uw naam
Regel 65521 en 65524, nr. en datum, worden bij de vrijgave
door de DATABAAS ingevuld. De andere regels vult u zelf
in. Of u in de beginfase al uw naam in de staart wilt zetten,
mag u zelf weten. Het mag maar het hoeft niet.
Wanneer het een programma in meerdere delen betreft
kan regel 65522 er anders uitzien, bijvoorbeeld:
65522 REM naam van het programma
i = informatie over programma
A%= Array(30,40)
Het achterlaten van een schone computer na stoppen
Er zijn een paar BASIC-opdrachten die na het verlaten van
het programma kunnen blijven gelden en narigheid kunnen
veroorzaken in een daarna geladen programma. Natuurlijk
is dat op te lossen door op RESET te drukken, maar dat is
vaak uiterst vervelend als je met discs werkt en alles weer
moet opstarten. Het devies luidt dus: ruim je rommel op!
Een voorbeeld met betrekking op de P2000:
Een CLEAR 5000,&H9FFF verhindert later het laden van
een programma groter dan 10K, zelfs al heeft u de 64K
uitbreiding! De oplossing is de zogenaamde FLEXIBELE
CLEAR. Ik geef hem hier (het hoe en waarom is uitgebreid
beschreven in de P2000 nieuwsbrief onder BASIC-TIPS
16.8 en in BASIC Notities voor de P2000 van Dirk Kroon):
I=PEEK(&H605C):CLEAR(50,(2*1+(1=3))*
&H2000+&H5FFF
Ook andere ongerechtigheden, zoals een afwijkend ven¬
ster, het vastzetten van hoofdletters en dergelijke niet ver¬
geten te herstellen!
Om aan deze opruimactie toe te komen is het noodzakelijk
de STOP-toets af te vangen. Het makkelijkst gaat dit door
op ERROR 64 te letten. Het programma moet beginnen
met:
ON ERROR GOTO regelnummer
Op 'regelnummer’ komt dan
IF ERR - 64 THEN RÉSUMÉ ELSE ON ERROR GOTO 0.
Deze mogelijk duistere constructie zorgt ervoor, dat de
STOP-toets niet meer wordt ”gezien” door het programma.
Toch stoppen moet dan bijvoorbeeld gebeuren door een
keuze in een MENU, of door het beantwoorden van een
vraag met j of n op de juiste plaats in het programma.
De MSX:
Bij het verlaten van een MSX-programma gelden dezelfde
STOP-afvangregels als bij de P2000 en om dezelfde reden.
Er is misschien nóg meer op te ruimen. Denk aan het her¬
stellen van COLOR en SCREEN mode, de diverse functies
onder de ”F”-toetsen en KEY ON. Het afvangen van STOP
staat onder andere beschreven in PTC PRINT van decem¬
ber 1985 in het artikel ”Menu-gestuurde programma’s” van
D. Kroon.
Een eventuele flexibele CLEAR-constructie zijn we nog
niet tegengekomen. Het blijkt dat bij RESETten de MSX
eerst een CLEAR 200,&HF380 uitvoert. Daarna echter
wordt dit getal verkleind bij gebruik van één of meer discs.
De waarde wordt genoteerd op adres &HFC4A (HIMEM).
Gebruikt u zelf bijvoorbeeld CLEAR 200,&HABCD, dan
wordt de waarde op HIMEM overschreven met &HABCD.
Het is duidelijk dat uw eigen CLEAR een waarde moet heb¬
ben, kleiner dan kan voorkomen op adres HIMEM. Mogelijk
is dit ook de reden waarom sommige programma’s wel met
CASSETTE werken maar niet met DISC. DISC gebruikt
meer ruimte bovenin het geheugen. Zodra hierover meer
bekend is leest u het in de MSX nieuwsbrief of PTC PRINT.
Op- en aanmerkingen over dit onderwerp zijn overigens
welkom!
Heeft u alleen de stringruimte aangepast, dan kunt u die
zonder problemen weer terugzetten met CLEAR 200.
Bladeren in en printmogelijkheid van de uitleg
Het is prettig als je in de UITLEG van een programma kunt
bladeren met de pijltjestoetsen, dus vooruit en achteruit.
Als het een wat uitgebreidere uitleg betreft óf als deze niet
in het programma is ingebouwd, is het plezierig als die kan
worden afgedrukt.
Ook bij de MSX moet men in een uitlegprogramma kunnen
bladeren (met de links/rechts pijltjes) en afdrukken. Het
testen van de printer kan met de opdracht
A = INPC144) AND 2
waarbij A = 2 een fout aangeeft en A = 0 O.K. of (helaas)
geen netspanning op de printer. Het programma loopt dan
gewoon door.
Het afdrukken van een pagina (van SCREEN 0) gaat heel
anders dan met de P2000. Een truc die bij de P2000 ont¬
brak, namelijk kiezen of een regel gePRINT of geLPRINT
moet worden, blijkt bij de MSX (enigszins verborgen) aan¬
wezig. Schrijf daartoe: PRINT # 1 in plaats van PRINT in de
regels waar de bestemming moet worden gekozen. Vóór
het printen wordt de bestemming vastgelegd met:
OPEN "bestemming" FOR OUTPUT AS#1
De bestemming kan zijn ”LPT:”, ”CRT:”, enz. Zie hiervoor
het Handboek BASIC instructies bij de opdracht ”OPEN”.
Nog eenvoudiger gaat het, als de hele getoonde pagina,
eventueel zonder eerste of laatste regel(s), van het scherm
op de printer wordt gezet. Denk wel om de printertest!
100
FOR R=0
TO
23: '
regel
110
FOR P=0
TO
39: '
positie
120
LPRINT
CHR$(VPEEK(R*40+P))
130
NEXT
140
LPRINT
150
NEXT
Terugspoelautomaat activeren
De nieuwe en vele van de oude P2000-en hebben een zo¬
genaamde terugspoelautomaat. Hiermee kan een bandje
worden teruggespoeld terwijl het programma loopt. U
hoeft daar dus niet op te wachten!
Schrijft u vooraan in het programma ergens de instructie
OUT 16,68. Het bandje spoelt dan bij het starten van het
programma alvast naar de beginstand en staat gereed voor
volgend gebruik. Heeft u de terugspoelautomaat niet, dan
kan de instructie geen kwaad en merk je alleen dat het
recordertje even wil gaan spoelen.
Het bovenstaande geldt natuurlijk niet wanneer je zeker
weet dat bijvoorbeeld een ARRAY, die moet worden gela¬
den, direct achter het programma staat. In dat geval is zelfs
het terugspoelen te verhinderen (POKE&H60AC,1).
Kom niet aan de baudrate van de printer
De P2000 start normaal op met 1200 baud. Heeft iemand
een afwijkende snelheid dan zet hij deze vooraf op adres
&H6016. Dit blijft dan goed tot de computer wordt geRE-
SET. Het is dan heel vervelend als je niet meer kunt printen
omdat in een programma die snelheid ongemerkt wordt
veranderd. Iets anders is het natuurlijk wanneer dit gebeurt
via een MENU.
Vermijd in dit verband ook het zetten van machinetaal-rou-
tines op adres &H6150. Het is gebruikelijk geworden hier
een routine voor een afwijkende (bijvoorbeeld parallel)
printer te zetten.
Let op de mensvriendelijkheid
Hierover kan ik kort zijn. Alles wat afwijkt van wat iemand
normaal zou verwachten is fout. Afwijkende edit-mogelijk-
heden, toetsen, of het helemaal niet reageren en je in het
duister laten waarom, enz. Alles staat onder andere be¬
schreven in de P2000 nieuwsbrief (BASIC-TIPS, 16.33). U
zult het allemaal wel een keer gelezen, maar kijk er nog
eens naar, als toets, voor u een programma inlevert.
Is er al iets beters, anders of soortgelijks?
Het is jammer dat soms erg veel tijd wordt gestoken in een
programma dat reeds door een ander werd gemaakt. Vaak
is dat niet te vermijden, vooral bij complexe programma’s
die veel ontwikkeltijd kosten. Voor de programma-beoor-
delingscommissie is het echter ook vervelend als in een
dagblad een programmaatje verschijnt dat kort daarna
door diverse lieden wordt ingestuurd.... Mogelijk dat in een
volgend nummer van PTC PRINT een opsomming kan wor¬
den gemaakt van wat er in ontwikkeling is. Reeds bestaan¬
de programma’s staan in de catalogus en/of Viditel.
Is een computer wel nodig?
Niet lachen, maar er worden toch regelmatig programma’s
ingestuurd die mét een computer zo veel vervelender gaan
dan zonder, dat je je afvraagt of die computer nu wel zo
nodig moet. Ik denk hierbij bijvoorbeeld aan spelletjes die
de computer alleen gebruiken als eens stukje papier
(waarop het eigenlijk beter zou gaan), programma’s die
geen score bijhouden, noch de computer gebruiken om
tegen te spelen, die geen behendigheid vereisen en die
soms alleen maar de uitkomst van de RANDOM generator
vertonen...Jammer van het toch wel vele werk dat er soms
Verschil tussen MSX en P2000
De richtlijnen die hierboven zijn genoemd zijn in grote lij¬
nen van toepassing op zowel P2000- als MSX-program-
ma’s. Natuurlijk zijn er ook nogal wat verschillen tussen de
mogelijkheden van de MSX en de P2000:
De P2000 kan het hele scherm vullen met keurige letters,
scherp en met een goed contrast (met de beschikbare
80-karakterkaart, uitermate geschikt voor tekstprogram¬
ma’s zoals bijvoorbeeld tekstverwerkers, woordspelletjes
en adventures). Hierin is de MSX zwak. Zet daarom bij de
MSX niet te veel tekst tegelijk op het scherm en liever met
een extra regel spatie. Daarentegen heb je met de MSX
veel meer grafische mogelijkheden en geluidseffecten ter
beschikking. Gebruik die. Een plaatje zegt soms meer dan
100 woorden. Kijk en luister eens naar de effecten bij
reeds in de handel zijnde programma’s en vraag je af hoe
ze dat gedaan hebben. Wees daarom niet te snel tevreden
met een programma. Het kan iets heel moois worden. Er
zijn trouwens nog maar weinig nederlandstalige program¬
ma’s op de markt voor de MSX.
inzit!
Hopelijk zet het bovenstaande u op het goede (program-
meer)spoor. We zien uw programma’s met belangstelling
tegemoet!
Hallo,
gemaakt. Op dit moment zijn er in het Evoluon alleen
P2000-en beschikbaar, maar we hopen dat we daar op kor¬
te termijn ook een aantal MSX-en aan kunnen toevoegen.
Al met al was het een geslaagde ochtend, waarvoor we
zeker de mensen van het Evoluon dank verschuldigd zijn.
Jeugdochtend in Eindhoven
Op zaterdag 1 maart heeft de tweede jeugdochtend plaats¬
gevonden in het Evoluon in Eindhoven. Het was net als de
eerste keer weer enorm druk. Helaas hebben we een aan¬
tal mensen moeten teleurstellen omdat er geen plaats
meer was. Maar iedereen komt aan de beurt!
De reacties op de eerste ochtend waren erg enthousiast.
De organisatie verliep toen nog niet geheel vlekkeloos
maar met de suggesties van de deelnemers in ons achter¬
hoofd hebben we ons uiterste best gedaan voor de bijeen¬
komst op 1 maart.
En geslaagd was het! Daar was iedereen het over eens.
Dat ook veel meisjes plezier hebben in het computeren
bleek wel uit het aantal vrouwelijke deelnemers. Olga en
Linda kwamen er zelfs helemaal voor uit Heerhugowaard.
De griep was niet opgewassen tegen zo’n bijeenkomst wat
wel bleek uit de aanwezigheid van een aantal "zieken” die
niets wilden missen en dus toch maar kwamen.
Allereerst hebben we een stuk uit een spannende video¬
film bekeken, uiteraard over computers. De heer Vliegen-
thart sr. heeft daarna verteld hoe een spraakchip werkt. Hij
had van alles mee genomen om te laten zien én horen, wat
een leerzame demonstratie opleverde. Daarna legden Mar¬
cel Jeurgens en Herman Robers uit hoe Viditel werkt. De
leiding van het Evoluon had alle medewerking verleend
door in de computerruimte een Viditelaansluiting te verzor¬
gen, zodat we direct konden zien hoe alles rond Viditel in
zijn werk gaat. Tussendoor presenteerde Marcel ook nog
een korte quiz, zónder prijzen maar met veel informatie. En
natuurlijk was er weer volop de gelegenheid om zelf met
de computer fe werken, waar veelvuldig gebruik van werd
Hoe verder?
Het aantal aanmeldingen voor deelname aan de jeugdoch¬
tend stapelt zich op. Regelmatig komen er vragen binnen
of ook in andere plaatsen dan Eindhoven iets dergelijks
georganiseerd kan worden. Helaas is dat op dit moment
nog niet het geval. Daarvoor moeten we eerst eens bekij¬
ken hoeveel tijd het allemaal gaat kosten, wat de mogelijk¬
heden zijn en vooral of iedereen het leuk blijft vinden. Maar
we houden jullie uiteraard op de hoogte.
Lizet van Os
Aandacht voor het verhaal over de spraakchip
Tekstverwerking op de P2000
Regelmatig bereiken ons vragen, die betrekking hebben
op het gebruik van tekstverwerkingsmodules op de P2000.
In veel gevallen ligt het probleem daarin, dat de module niet
past bij de op de P2000 aangesloten printer.
De tekstverwerkingsmodules, zoals die voor de P2000 ver¬
kocht worden zijn namelijk bedoeld en ontwikkeld voor
één speciale printer. Aan zo’n module valt verder niets te
veranderen of aan te passen. Uiteraard wil het nog wel
eens goed gaan met een andere printer, als die printer
toevallig hetzelfde repertoire van commando’s heeft.
De fout die gemaakt wordt is, dat in advertenties en bij
aankoop niet wordt vermeld voor welke printer zo’n modu¬
le is gemaakt en ook niet, dat het ding voor andere printers
niet (zonder problemen) te gebruiken is. Veel dealers blij¬
ken dat niet eens te weten. Het gevolg is een stroom van
klachten en een zeer negatieve houding ten opzichte van
de P2000 bij importeurs en verkopers van printers.
Daarom volgt hieronder een overzichtje van de verschillen¬
de tekstmodules, die voor de P2000 te koop zijn, met de
daarbijbehorende printer.
Module
Model P2000
Printer
WP-1
T
P2123
WP-2
M
P2123
TV 1.0 NL
T
STAR GEMINI
TV 1.1 NL
T
HERMES TOPTR
TV 1.2 NL
T
P2123
TEXT 2000
T
P2123
Jan Gieles.
LOGO leert logisch denken
Wim van den Eijnde
Vooral omdat LOGO zich in een zekere
populariteit mag verheugen bij de bezit¬
ters van MSX-computers willen wij aan¬
dacht schenken aan een mededeling van
het LOGO Centrum in Ede over deze taal,
die zich zo bijzonder goed leent om com¬
puters op een zinnige manier te gebruiken
in het onderwijs. Ook diegenen die vanwe-
Populair in de USA
In de USA staat LOGO in 90% van de scholen op het pro¬
gramma; daaruit blijkt, dat óf een heleboel mensen zich
vergissen óf dat LOGO écht belangrijk is. Ik ben geneigd
het laatste te geloven, al was het maar omdat deze taal al
zo lang in de computer(vak)bladen telkens weer onder¬
werp van bespreking is.
In Nederland heeft LOGO nog niet die populariteit die het
daar volgens de LOGO-isten verdient. Daarom is nu een
volledig Nederlandse versie ontwikkeld die men als wapen
in de strijd zal brengen om het gebruik van LOGO te be¬
vorderen.
Krachtige taal
LOGO, zo stelt het LOGO Centrum, is de meest krachtige
taal die op dit moment beschikbaar is voor thuiscompu¬
ters. Krachtig wil in dit verband zeggen dat men zich min¬
der met de problemen van de taal zelf bezig hoeft te hou¬
den en zich meer kan concentreren op het probleem dat
men met de computer wil oplossen; een soort auto met
een automatische versnelling dus. Ook ervaren program¬
meurs zullen daar plezier van kunnen hebben al zal het
erkennen daarvan in bepaalde gevallen wel eens moeilijk¬
heden opleveren. Toch zal het ook voor hen makkelijker
zijn een op maat gesneden programma te schrijven.
Nooit fout
Kinderen zijn in principe oorspronkelijke denkers maar
zien hun eigen kijk op de werkelijkeheid vaak door volwas¬
senen onderdrukt en zo wordt het kind van denker mee¬
denker. Seijmour Papert, de grondlegger van LOGO, ging
er bij zijn ontwerp vanuit dat LOGO het oorspronkelijke
denken zou moeten aanmoedigen. Kinderen leren hun om¬
geving kennen door deze ”uit te proberen”. Hun taalont¬
wikkeling is een antwoord op nieuwe situaties. Die taal
wordt door de volwassene niet altijd even goed verstaan;
die legt vervolgens aan het kind uit wat (hij/zij denkt dat)
het kind bedoelt, en dat met het hierboven geschetste re¬
sultaat. LOGO moedigt het origineel creatief denken ech¬
ter aan. Alles wat afwijkt van wat eigenlijk de bedoeling was
levert onmiddellijk een leerervaring op. Bij LOGO worden
fouten dus niet bestraft en de gebruiker hoeft er ook geen
energie in te steken om deze te voorkomen. Wat men bij
LOGO doet is nooit fout. Dit deed mij even denken aan een
uitspraak die ik eens hoorde van een hooggeleerde heer,
namelijk dat het niet mogelijk is om foute programma’s te
maken, wél programma’s die niet doen wat je ervan ver¬
wacht.
Logisch leren denken
In de LOGO-wereld leert het kind vanzelf begrijpen hoe
ge te grove grafische mogelijkheden LO¬
GO niet zinvol op hun computer kunnen
implementeren raad ik aan toch kennis te
nemen van deze tekst, al was het alleen
maar om hun kennis van het ABC (Alge¬
meen Beschaafd Computerjargon) aan te
vullen.
alles in elkaar zit en het krijgt spelenderwijs inzicht in wis¬
en natuurkundige principes. De taal is niet alleen nuttig en
educatief maar ook leuk om mee te werken en wat leuk is
wordt beter geleerd en onthouden; het moedigt aan om
verder te gaan. LOGO wordt omschreven als een knutsel¬
doos met elementen als lijnen, hoeken, bogen, kleur, snel¬
heid, richting, noten en woorden. Het leert de gebruiker
steeds beter programmeren. Elke afgeronde module kan
worden gebruikt in een volgend programma. Zo leert men
dat complexe zaken vaak niet meer zijn dan een samenstel
van heel eenvoudige bouwstenen.
Volwaardige taal
Men denke na dit alles nu niet dat LOGO een taaltje is voor
de kindercomputerkamer. Niets is minderwaar. Het is no-
tabene afgeleid van LISP, de taal voor kunstmatige intelli¬
gentie. Dit, aangevuld met veel grafische mogelijkheden en
muziek, voldoet aan alle eisen die een informaticus aan een
programmeertaal kan stellen. De taal wijkt, evenals LISP, af
van de conventionele talen. De gebruiker is de norm; hij
onderwijst de computer en daardoor zichzelf. Het is trou¬
wens een bekende uitspraak, dat men iets het beste leert
door het een ander te leren.
Centraal idee achter LOGO is via de computer een leerom¬
geving te creëren, zoals ”de straat” de leeromgeving creë¬
ert voor de taalontwikkeling.
Andere wereld
Een echt LOGO-systeem kent vier werelden:
- De (schildpad-) teken wereld waarbij een soort schildpad
met behulp van eenvoudige commando’s over het scherm
wordt gestuurd.
- De wereld van de klonen; het manipuleren met animatie-
fuguren in kleur, snelheid en richting, enz.
- De muziekwereld; het werken met noten en tonen.
- De woordenwereld; het manipuleren met informatie op
een interactieve manier.
Elk van deze werelden beschikt over een aantal bouwste¬
nen waarmee de computer nieuwe vaardigheden kunnen
worden bijgebracht die dan later weer in andere program¬
ma’s kunnen worden gebruikt.
Sinds kort is de hierboven al genoemde volledig Neder¬
landse (Philips)MSX-versie beschikbaar. (Over deze Ne¬
derlandse versie kunt u elders in dit blad lezen). De hieraan
verbonden conclusie van het Edense LOGO Centrum is
een tè fraai stukje tekst om dit artikel niet mee te beslui¬
ten:
Hiermee is het ideale leermiddel binnen ieders bereik; niet
alleen voor kinderen maar voor iedereen die BASIC niet
meer ziet zitten zal LOGO een openbaring zijn. En in het
bejaardenhuis hoeft niet alleen maar gekaart te worden.
Ook geeft LOGO vrouwen en meisjes alle kansen om hun
eigen informaticaknobbel te ontdekken (mannen niet'?
(red.)).
Wie meer wil weten kan terecht bij het LOGO Centrum,
Annadaal 96, 6715 JC Ede, telefoon (08380) 21306.
Hemelsbreed op de MSX
Peter van Overbeek
Met het volgende programma kunt u tussen twee plaatsen
op aarde de hemelsbrede afstand berekenen uit de lengte¬
en breedtecoördinaten van die plaatsen. Dus haal uw atlas
uit de kast en probeer eens of uw afstandsgevoel betrouw¬
baar is.
10 * ****** afstandberekening *:f
20 '****** uit de coördinaten ******
30 ’Peter van Overbeek 19 juni 1986
40 CLS:KEYOFF:R=ATN(l>/45: PÏ=4*ATN<1>
50 PRINT” AFSTANDBEREKENING"
60 PRINT:PRINT;PRINT”Dit programma berek
ent de afstand van”
70 PRINT”twee plaatsen op aarde hemelsbr
eed ”
80 PRINT”uit de lengte- en breed.tecoördi
naten.”
90 PRINT:PRINT”Van de plaatsen moet opge
geven worden;”
100 PRINT: PRINT”—Breedte in graden,minu
ten,N of Z”
110 PRINT:PRINT”-Lengte in graden,minute
n, O of V”
120 PRINT:PRINT:PRINT”>> Druk spatiebalk
voor vervolg <<”:A$=INPUTS(1)
130 * Rekent de coördinaten om.
140 CLS: K=1 :K$=”eerste”:GOSUB 290
150 Bl=S*R*<BG%+BM%/60>
160 L1-T*R*(LG%+LM%/60>
170 P$=STR$(BG%) tSTRS <BM%)+B$+”.”+STR$ <L
G%> +STRS <LM%)+L$+” . ”
180 CLS:K=2:K$=”tweede”:GOSUB 290
190 B2=S*R*<BG%+BM%/60>
200 L2=T*R*(LG%+LM%/60)
210 Q$=STR$<BG%> +STRS<BM%)+B$ + ”.”+STRS(L
G%)+STR$ <LM%)+L$+” . ”
220 ’Berekent de afstand
230 CLS:PR INT”Van ”;PS:PRI NT”naar”;QS
240 LV=L1-L2:A=SIN(B1>*SIN(B2> +COS <B1 > *C
OS<B2)*COS<LV)
250 A=ATN(SQR(1-A*A)/A>:IF A<=0 AND LV<>
0 THEN A=A+4*ATN<1)
260 AF=INT<6370*A+.5) : PRINT
270 PRINT”Afstand is”;AF;”Km”:KEYQN:END
280 ’Vraagt coördinaten op
290 PRINT”Coördinaten van ”;KS;” plaats:
”:PRINT
300 INPUT”Breedtegraad ”;BG%:IF BG%>=0
AND BG%<90 THEN 310 ELSE 300
310 INPUT”Breedteminuten ”;BM%:IF BM%>=0
AND BM%<60 THEN 320 ELSE 310
320 INPUT”Noord/Zuid(N/Z)”;BS
330 IF B$=”N” OR BS=”n” OR BS=”Z” OR BS=
”z” THEN 340 ELSE 320
340 INPUT”Lengtegraad ”;LG%:IF LG%>=0
AND LG%<=180 THEN 350 ELSE 340
350 INPUT”Lengteminuten ”;LM%:IF LM%>=0
AND LM%<60 THEN 360 ELSE 350
360 INPUT”Oost/Vest (0/V)”;L$
370 IF L$ = ”O” OR L$ = ”o” OR L$'=”W” OR L$ =
”w” THEN 380 ELS.E 360
380 INPUT”Alles OK? <J/N)”;J$:IF J$=”n”
OR JS=”N” THEN 290
390 IF B$=”N”OR B$=”n”THEN S-1ELSE S=~l
400 IF L$=”V”OR LS=”w”THEN T=1 ELSE T=-l
410 RETURN
Juffrouw , er Komr eer ulroj u/r
,m'n compuTER! Knn drt klurrd p
Bureau PTC, ook voor uw technische vragen (Tekening: Janco
Ver duin)
14
Disk-BASIC (3)
Rob Geutskens
In de vorige twee afleveringen van Disk-
BASIC zijn we een beetje zigzaggend
door deze interpreter heen gewandeld.
Als u denkt dat het van nu af wat meer
gestructureerd wordt, dan hebt u het mis.
Ook in deze aflevering neem ik zomaar
wat zaken bij de kop die ik heb ontdekt en
waarvan ik denk dat medegebruikers van
Disk-BASIC er wat aan zullen hebben. En
ook nu weer de nodige vergelijkingen tus¬
sen Cassette- en Disk-BASIC om te laten
Goed nieuws
Om te beginnen goed nieuws voor alle P2000-bezitters:
het P2000 Adresboekje, waarvan ik in de vorige aflevering
beloofde dat ik het eindelijk eens zou afmaken, verschijnt
nu toch zeer binnenkort. Het concept is bekeken door een
aantal leden die van de hoed en de rand weten en na het
verwerken van hun opmerkingen en aanvullingen moet het
alleen nog even worden gedrukt. In het Adresboekje treft u
niet alleen een overzicht aan van de functies van alle adres¬
sen tussen &H6000 en &H6547 van Cassette-BASIC, maar
ook die van de meeste adressen tussen &H6000 en
&HAC97 van Disk-BASIC, voor zover die relevant zijn (en
voor zover ik ze heb kunnen achterhalen).
Een nieuwe ontdekking
Hoe meer ik me verdiep in Disk-BASIC, des te aardiger ga
ik deze BASIC-versie vinden. In de vorige aflevering heb ik
beschreven hoe u de instructie A — INP(””) van Cassette-
BASIC bij Disk-BASIC moet vervangen door de veel om¬
slachtiger constructie A$ = INKEY$:IFA$ = ”” THEN
"zelfde regelnummer” ELSE A = ASC(A$).
In de MSX-Nieuwsbrief, die tegelijk met het vierde nummer
van PTC PRINT werd verzonden, heeft Dirk Kroon een aan¬
tal INPUT-routines voor MSX beschreven. Eén van die in¬
structies was A$ = INPUT$(N). De MSX-computer wacht
bij deze instructie totdat er N tekens zijn ingetoetst en gaat
dan verder met het programma, zonder de ingetikte tekens
op het scherm te tonen.
Voor de aardigheid heb ik deze instructie geprobeerd met
Disk-BASIC. Niet te geloven. Het staat nergens, maar het
werkt wel. De computer wacht netjes totdat u N tekens (N
= 1...255) hebt ingetikt en kent die tekens dan toe aan A$.
Dit betekent dat uA = INP(””) niet hoeft te vervangen
door het hele verhaal dat in aflevering 2 stond, maar door A
= ASC(INPUT$(1)). Dat lijkt een stuk langer dan A =
INP(””), maar doordat ASC en INPUT worden vervangen
door de corresponderende token-codes, valt dat wel mee.
Het programmastukje op pag. 15 van de vorige PTC PRINT
wordt dan:
10 A$=INPUT$(1)
20 PRINT A$
30 GOTO 10
Wilt u met de ASCII-code van A$ werken, dan wordt dit:
zien dat er veel overeenkomsten, maar
toch ook veel verschillen zijn.
MSXers komen in deze aflevering niet zo
erg aan hun trekken. Dat neemt niet weg
dat er in deze aflevering toch enkele za¬
ken aan de orde komen die ook voor
MSXers interessant zijn, bij voorbeeld het
hernummeren van programmaregels en
het wegschrijven van programma’s op
schijf.
10 A=ASCCINPUT$C1))
20 PRINT A
30 GOTO 10
De instructie INPUT$ opent weidse horizonten. U zou hem
kunnen gebruiken als u in een programma alleen getallen
van bij voorbeeld 3 cijfers wilt kunnen invullen:
10 A=VAL(INPUT$(3))
20 PRINT A
30 GOTO 10
Merk op dat u RETURN niet hoeft te gebruiken. Als u drie
cijfers hebt ingetikt, gaat het programma vanzelf verder
met de volgende regel. Tikt u letters in, in plaats van cijfers,
dan krijgt A de waarde 0.
Omdat er niets op het scherm wordt afgedrukt als u dat
niet wilt, kunt u de instructie INPUT$ ook gebruiken om uw
programma te beveiligen tegen ongeoorloofd gebruik. Bij
voorbeeld zo:
10 A$="Geheim"
20 B$=INPUT$ C 6)
30 if B$=A$ THEN 40 ELSE PRINT"Dit
programma is beveiligd":GOTO 20
40 PRINT"Dat was het"
RENUM
Eén van de handigste instructies die Disk-BASIC en MSX
wel kennen en cassette-BASIC niet, is RENUM. Daarmee
kunt u in ”no time” de regelnummers van uw programma
netjes maken. Hebt u een programma gemaakt en toetst u
alleen RENUM in, dan ziet u na LIST dat de eerste pro¬
grammaregel het nummer 10 heeft gekregen en dat alle
volgende regels steeds 10 hoger zijn. Met andere woor¬
den: het increment (de stapgrootte) is 10. RENUM zonder
verdere toevoegingen kunt u gebruiken om ruimte te
scheppen in uw programma. Wilt u bij voorbeeld tussen
regel 11 en regel 12 een nieuwe programmaregel toevoe¬
gen, dan hoeft u alleen maar RENUM in te toetsen en u
hebt weer ruimte voor negen extra regels.
Maar met de instructie RENUM kunt u veel meer doen. U
kunt ook een deel van het programma hernummeren, zij
15
het dat dit altijd betrekking heeft op alle regels die volgen
op een bepaald regelnummer. U kunt opgeven wat het eer¬
ste regelnummer moet zijn van het te hernummeren deel
van het programma, vanaf welk regelnummer RENUM
moet beginnen te hernummeren, en wat de stapgrootte
moet zijn.
Dit klinkt allemaal nogal ingewikkeld. Daarom zal ik het aan
de hand van een voorbeeld proberen te verduidelijken.
Stel dat u een programma hebt gemaakt waarin zoveel is
gerommeld, dat de regelnummers chaotisch zijn gewor¬
den. Begin dan met RENUM zonder meer. De nummering
is dan zeer keurig: 10, 20, 30 enzovoort. Begint op (de
hernummerde) regel 310 een nieuw deel van het program¬
ma, dat u eruit wilt laten springen, dan tikt u bij voorbeeld
in:
RENUM 1000,310,10
Hierin is het eerste getal het nieuwe regelnummer, het
tweede getal het oude regelnummer en het laatste getal de
stapgrootte.
Als u dit probeert dan ziet u dat het eerste deel van het
programma loopt van regel 10 tot en met regel 300, en het
tweede deel van 1000 tot XXXX, waarbij elk regelnummer
10 groter is dat het voorgaande regelnummer. Zo door¬
gaande kunt u elk afgebakend deel van het programma
met een regelnummer naar keuze laten beginnen, als u
maar van voren naar achteren werkt.
Staan er GOSUBs of GOTO’s in uw programma die naar
niet bestaande regelnummers verwijzen, dan krijgt u een
foutmelding op het scherm:
Undefined line NNN in XXX
Hierin is NNN het regelnummer waar naar toe moet worden
gesprongen, en XXX het oorspronkelijke regelnummer. U
zult even moeten zoeken in welke (nieuwe) regel de fout
staat, want na RENUM is XXX hernummerd (NNN niet). Het
is zaak de getallen XXX en NNN meteen over te nemen op
een briefje en de fout te herstellen. Toetst u namelijk nog
een keer RENUM in, dan hebt u een goede kans dat NNN
inmiddels een wel bestaand regelnummer is geworden. U
krijgt dan geen nieuwe foutmelding op het scherm, maar
de fout zit natuurlijk nog wel in het programma.
Regelnummers in een programma
Als u bij Cassette-BASIC het volgende programma intikt:
10 GOTO 20
20 GOTO 1000
1000 GOSUB 60000
60000 END
dan komen de regelnummers waar naar toe wordt ge¬
sprongen in het geheugen te staan als ASCII-code. Kijkt u
met het monitorprogramma naar regel 1000, dan staat er
8C (de code voor GOSUB), 20 (spatie), 36 30 30 30 30
(60000 in ASCII-code). Laat u het programma lopen (dat
leidt natuurlijk tot niets zinvols), en kijkt u nogmaals met
het monitorprogramma op regel 1000, dan zult u zien dat er
niets veranderd is.
Nu Disk-BASIC. Tikt u hetzelfde programma in en kijkt u
weer in regel 1000, dan blijkt daar 8D (de code voor GO¬
SUB), 20 (spatie), 0E 60 EA te staan. Het regelnummer
60000 is dus klaarblijkelijk niet in ASCII-code maar in hexa-
decimale vorm vermeld (&HEA60 = 60000).
Laat u nu het programma lopen, en kijkt u nogmaals in het
geheugen, dan blijkt er in regel 1000 (en in de andere re¬
gels) iets heel anders te staan. In regel 1000 staat nu: 8D
(de code voor GOSUB), 20 (spatie), 0D 69 92. Dit betekent
kort en goed dat het regelnummer (&HEA60) is vervangen
door het adres waar deze regel begint (&H9269).
De bedoeling hiervan is snelheid te winnen. Als u bij Cas¬
sette-BASIC in een programma de instructie GOSUB of
GOTO gebruikt, dan begint BASIC bij het begin van het
programma te zoeken naar het opgegeven regelnummer.
Dat is de enige manier om de gewenste regel te vinden.
Staat die regel ergens achteraan in een lang programma,
dan duurt het even voordat hij is gevonden. Gebruikt u in
een programma voor Cassette-BASIC subroutines, dan
heeft het zin die vooraan in het programma te zetten; voor¬
al als ze vaak worden aangeroepen en het een lang pro¬
gramma is. BASIC heeft ze dan sneller gevonden en het
programma wint daarmee aan snelheid.
Bij Disk-BASIC maakt het niets uit waar u de subroutines
neerzet, want zodra u het programma laat lopen worden de
regelnummers vervangen door de beginadressen van die
regels. BASIC kan dus zonder zoeken meteen naar de juis¬
te plaats springen.
Zodra u echter het commando EDIT gebruikt, verandert
Disk-BASIC de beginadressen ijlings weer in regelnum¬
mers. Dat moet wel, want als het programma langer of kor¬
ter wordt, veranderen de beginadressen van alle regels na
de regel die u bewerkt. Tikt u nu RUN in, dan worden alle
regelnummers weer vervangen door adressen. Dat veran¬
deren kost een paar milliseconden, maar dat is eenmalig.
Als u niet opziet tegen wat tikwerk, zou u het volgende
programma kunnen intikken:
U zult zien dat het uitvoeren van het programma de eerste
keer meer tijd kost dan de volgende keren omdat de eer¬
ste keer alle regelnummers moeten worden vervangen
door beginadressen.
Hernummeren bij Cassette-BASIC
Na het voorgaande valt te begrijpen waarom Disk-BASIC
wel, en Cassette-BASIC niet een ingebouwde hernumme-
raar heeft. Disk-BASIC vervangt gewoon eerst alle regel¬
nummers na GOSUB en GOTO door de desbetreffende
beginadressen, verandert vervolgens de regelnummers
aan het begin van elke programmaregel en vult bij LIST
gewoon weer de regelnummers na GOSUB en GOTO in
door te kijken wat het nummer is van de regel die op adres
NNN begint. De grap is namelijk dat zowel voor het regel¬
nummer in hexadecimale vorm als voor het beginadres van
die regel altijd twee geheugenposities worden gebruikt. Bij
het veranderen van het één in het ander blijft het program¬
ma dus dezelfde lengte houden.
Bij Cassette-BASIC is dat anders. Bij het hernummeren
zou regelnummer 98 wel eens regelnummer 120 kunnen
worden. Omdat na GOSUB en GOTO het regelnummer in
de vorm van een ASCII-code staat, is nu een extra geheu-
genpositie nodig. Alles wat na GOSUB of GOTO volgt moet
10 POKE &H6010,0:REM Zet teller op 0
20 GOTO 30
30 GOTO 40
enz.
990 GOTO 1000
1000 PRINT PEEKC&H6010)
16
één plaats opschuiven. Daardoor veranderen ook de begi-
nadressen van alle volgende regels. Het veranderen van
regelnummers in beginadressen en weer terug is bij Cas-
sette-BASIC niet zo simpel door al dat geschuif. Vandaar.
SAVE en LOAD
Dit lijken eenvoudige instructies, maar er zit toch iets meer
aan vast dan u misschien denkt.
Om te beginnen, maar dat hebt u waarschijnlijk al ontdekt,
kunt u na het opstarten een programma dat u hebt ge¬
maakt niet zonder meer wegschrijven op diskette. Eerst
moet het woord RESET worden ingetikt. Dit is wat anders
dan de RESET-knop indrukken, want dan bent u uw pro¬
gramma kwijt en moet u uithuilen en opnieuw beginnen.
Met RESET worden alle disk drives in de lees/schrijfstand
gezet en wordt drive A gekozen.
Na het intikken van RESET kunt u uw programma op schijf
zetten met de instructie SAVE”NAAM. Kijkt u hierna met
FILES in de index van de schijf, dan ziet u dat daar staat:
NAAM .BAS
Het blijkt dus dat Disk-BASIC een naam, die korter is dan 8
tekens, automatisch aanvult met spaties. Als het om een
BASIC-programma gaat, voegt Disk-BASIC eveneens au¬
tomatisch de ”extension” .BAS toe. U kunt daar zelf wat
anders van maken. Tikt u bij voorbeeld in :
SAVE "TESTPROGRAM
dan staat er in de index:
TESTPROG.RAM
Om dit weer in te lezen met LOAD moet u de volledige
naam, inclusief de extension, intikken; 11 tekens dus. Want
Disk-BASIC controleert op alle elf tekens (in tegenstelling
tot Cassette-BASIC, die alleen op de eerste letter contro¬
leert).
Er is nog iets waarop u moet letten: Disk-BASIC maakt
onderscheid tussen hoofdletters en kleine letters. Als u
programma’s wegschrijft als NAAM, naam en Naam, dan
zijn dat drie verschillende programma’s. U hoeft dus nooit
om namen verlegen te zitten want uit 26 kleine letters, 26
hoofdletters, 10 cijfers en nog een handjevol leestekens
kunt u bijna oneindig veel verschillende namen samenstel¬
len.
Wel is het zo dat als u een naam gebruikt die al in de index
staat, Disk-BASIC het oude programma met die naam zon¬
der waarschuwing en pardon overschrijft (Cassette-BASIC
vraagt eerst of het mag). Tenzij u het programma tegen
schrijven hebt beveiligd. Hierover meer aan het einde van
dit artikel.
Bij MSX is dit allemaal wat anders. Om te beginnen kent
MSX het commando RESET niet. De disk drives staan dus
meteen in de lees/schrijfstand. Verder maakt MSX geen
onderscheid tussen hoofdletters en kleine letters. Als u
intikt: save”naam dan wordt het programma met hóófdlet¬
ters, dus als NAAM, weggeschreven. U kunt het ook weer
met kleine letters inlezen: load”naam.
MSX voegt bij mijn weten ook geen ”extension” zoals BAS
toe. Maar u kunt dat wel zelf doen, bij voorbeeld om aan te
geven dat het om een BASIC-programma gaat. Dat tikt u
dan als volgt in:
SAVE"NAAM.BAS"
Dit mag natuurlijk ook met kleine letters.
Als u dit probeert dan zult u (na FILES) zien dat ook bij
MSX de programmanaam uit 8 tekens en de ”extension” uit
3 tekens bestaat.
Programma’s beveiligen
Er zijn verschillende manieren om bij gebruik van Disk-
BASIC een programma te beveiligen. De manier volgens
het boekje is met:
SAVE"NAAM",P
Het programma wordt dan als cryptogram weggeschreven
op schijf. Er is echt geen chocola meer van te maken.
Bovendien staat op de eerste positie van het weggeschre¬
ven programma de code &HFE (bij programma’s die op de
normale, niet beveiligde manier worden weggeschreven, is
dat &HFF). Ik ben er nog niet achter kunnen komen hoe dit
cryptograferen in zijn werk gaat, maar het zou me niets
verbazen als de random-generator eraan te pas kwam. In
elk geval is het niet zo dat elke code met een vaste waarde
wordt verhoogd of verlaagd. Ik zal dankbaar zijn als er le¬
zers onder u zijn die dit eens willen uitzoeken.
Het spreekt vanzelf dat het cryptogram weer in ordentelij¬
ke BASIC-taal moet worden vertaald voordat het program¬
ma loopt. Dat gebeurt dan ook. Oplettende lezertjes zullen
nu misschien uitroepen dat je het programma toch kunt
LISTen als de P2000 het weer heeft terugvertaald. Maar als
u LIST intikt, krijgt u geen listing maar een ”lllegal function
call” op het scherm. Dat komt doordat op adres &H684A
de code &HFE staat in plaats van 00 zoals bij gewone pro¬
gramma’s.
U denkt nu natuurlijk dat het een fluitje van een cent is om
met POKE &H684A,0 het programma LISTbaar te maken.
Dat had u gedacht. De instructie POKE leidt eveneens tot
een ”lllegal function call”. Sterker nog: u kunt zelfs niet
meer PEEKen. Dat komt allemaal van die code &HFE op
adres &H684A.
Een programma, dat met de toevoeging ,P is weggeschre¬
ven, kunt u wel met LOAD inlezen en daarna met RUN
laten uitvoeren. U kunt het programma echter met geen
mogelijkheid LISTen. Nou, met geen mogelijkheid.... Er is
natuurlijk altijd wel een methode te vinden om deze slinkse
snakerijen te omzeilen, anders had ik u dit niet allemaal
kunnen vertellen.
Hoe heft u de beveiliging weer op?
Een waarschuwing voordat u met beveiligde programma’s
gaat experimenteren. Als u een programma hebt wegge¬
schreven met de toevoeging ,P, kunt u er niets meer aan
veranderen. U kunt het alleen nog RUNnen, maar alle po¬
gingen om het te EDITen of opnieuw weg te schrijven zon¬
der de toevoeging ,P leiden tot een "lllegal function call” of
tot een leeg bestand. Ik heb geen eenvoudige manier kun¬
nen bedenken om zo’n beveiligd programma te kunnen
bewerken. Dat lukt alleen met een klein stukje machinetaal
in het geheugen. Ik heb geaarzeld of ik zo’n machinetaal-
programmaatje wel kan publiceren, maar ik denk dat het
wel kan. In de eerste plaats zijn er veel meer manieren om
een programma te beveiligen, bijvoorbeeld door de hier
beschreven methode te combineren met de hiernavolgen¬
de methode. Een geroutineerde programmeur kan nog wel
meer trucs bedenken om zijn programma’s te bescher¬
men. In de tweede plaats kan een gecryptografeerd pro¬
gramma zonder meer worden gekopieerd met het utiliteits-
17
programma VOLORG, zodat cryptograferen geen bescher¬
ming biedt tegen oneigenlijk gebruik en kopiëren. In de
derde plaats zijn er voor zover ik weet nauwelijks of geen
gecryptografeerde programma’s voor de P2000. En in de
vierde plaats kan elke programmeur met het P2000 Adres¬
boekje in de hand zelf wel een programma bedenken dat
het mogelijk maakt een gecryptografeerd programma te
LISTen. Daarom toch maar het onderstaande program¬
maatje, dat alleen bedoeld is om gecryptografeerde pro¬
gramma’s te kunnen LISTen en EDITen.
10 FOR 1=0 to 4
20 READ A$:POKE&H60A0+I,VAL("&H"+A$)
30 NEXT
40 DEF USR=&H60A0
50 DATA AF,32,4A,68,C9
60 END
Laat dit programmaatje lopen voordat u het beveiligde pro¬
gramma inleest. Tik na het inlezen in:
? USR(O)
en ziet; het wonder is geschied: u kunt het programma
gewoon LISTen, bewerken en niet-beveiligd SAVEn.
Nog een manier
Er is nog een tweede manier om programma’s tot op zeke¬
re hoogte te beveiligen. Dat is door in het File Control
Block op de veertiende positie de code 02 te zetten (nor¬
maal staat daar 00). Zie voor de opbouw van het FCB het
P2000 Adresboekje.
Als u een programma, met de code 02 op de veertiende
BOEKHOUDEN het enige boekhoudprograiRiia volgens
de nieuwe fiscale eisen voor P2ÖÖ0T en HSa 2 fl
685,-
CPU en MS-DOS
fl
1265,--
DATA-BASE een uitgebreid bestandsprogramma iet
rekenfuncties voor P2ÖÖÖT en MSX2 fl
650,—
CPM en MS-DOS
fi
865,—
FAKTUREREN (hiervoor is ook DATA-BASE nodig)
voor P2ÖÖ0T en HSX2
fl
350,--
CPM en MS-DOS
fl
650,—
PRINTERS inch tekstverwerker
STAR matrixprinter serieel (voor bv F2Ö00T)
fl
1640,-
paral el (voor hv MSX)
fl
1290,--
STAR dsisywheel printer serieel en paral el
fl
1750,--
COMPUTERS ünciueief P200QT-38K
fl
1285,-
boekhoud- P2Ö12C
fl
5995,-
programma) TULIP MS-DOS
fl
4990,-
MSX2
fi
1905,-
40/80 kol ossprint voor P2000T (bouwpakket)
fi
89,-
Eprofiiprograaiser voor P2ÖÖ0T 2732 tot 27128
fl
138,-
TAPE programmasiEpromprogrammer
fi
38,-
:Rando« Cassette Acces (RCA)
fl
37,50
:RAM-DISK met tape-acces
f 1
27.50
Inktlint STAR matrix printer
fl
8,-
STAR daisywheel printer
fl
19.95
Kettingpapier 12“ 8 blanco 2000 vel
fl
64.50
(prijzen ex 19% BTH.Programma's incl. 1/2 dag
in si
:ructie)
Job van Broekhuijze Computersystemen
Rijnsingel 13 Ridderkerk
-telefoon 01804-11221
positie, met LOAD probeert in te lezen, krijgt u de foutmel¬
ding ”Disk l/O error” op het scherm. De enige manier om
het programma te laten werken is het met RUN”NAAM in
te lezen. Het wordt dan meteen in uitvoering genomen.
Onderbreekt u het programma met STOP, dan kunt u het
gewoon LISTen en bewerken. Deze methode van beveili¬
gen is dan ook meer bedoeld om te voorkomen dat het
programma wordt overschreven (”write protect”). Wilt u de
methode gebruiken om te voorkomen dat onverlaten aan
uw programma gaan knoeien, dan moet u dat programma
zo maken dat het maar op één manier kan worden verlaten,
en dat die manier leidt tot vernietiging van het programma.
Er mag dus maar één uitgang zijn en daarbij moet het pro¬
gramma het commando NEW tegenkomen. Dit kan alleen
als u de stoptoets buiten werking stelt (hoe dat moet, staat
in aflevering 2 van dit verhaal).
De vraag rijst hoe u de code 02 in het FCB krijgt. Daar zijn
twee manieren voor. De eerste is gebruik maken van het
programma VOLORG (VOLume ORGanization) dat bij mijn
weten door Philips bij de Disk-BASIC wordt geleverd. Na¬
deel van dit programma is dat u de code alleen kunt zetten
en niet meer kunt verwijderen. In tegenstelling tot gecryp¬
tografeerde programma’s kunnen ”write protected” pro¬
gramma’s niet op de gebruikelijke manier worden geko¬
pieerd.
Met de tweede methode maakt u rechtstreeks gebruik van
PDOS. Het gaat te ver dat hier in extenso te beschrijven,
maar u kunt de benodigde informatie vinden in het artikel
”Het Philips Disk Operating System” van Lambert Knapen
in Nieuwsbrief 5 van de P2000gg. Het artikel staat ook op
pagina 59 van de Samenvatting 1 ...7.
(wordt vervolgd)
Greetje van Son
Nieuws van
bureau PTC
Wisseling van de wacht
Zoals een aantal van u waarschijnlijk al gemerkt heeft,
heeft Marion Habraken haar werkzaamheden bij de PTC
gestopt. Dat was wel even wennen want zij is het die vanaf
het allereerste begin als vaste medewerkster bij de PTC
betrokken was. Het lijkt haast niet voor te stellen, maar nog
geen jaar geleden hield zij de ledenadministratie nog bij
met behulp van een kaartenbak! Geen computer, geen au¬
tomatisering, gewoon "ouderwets”. In de loop der tijd is
Marion zich bezig gaan houden met de organisatie rond
het oprichten van de afdelingen en veel afdelingsbesturen
zullen haar dan ook regelmatig aan de telefoon gehad heb¬
ben. Gelukkig hebben we voor haar een enthousiaste op¬
volgster gevonden in de persoon van Greetje van Son.
Voor vragen over de afdelingen en alles wat daarmee te
maken heeft kunt u voortaan bij haar terecht.
18
Cassettes versturen per post:
een ramp?
Lizet van Os
Vrijwel elke computergebruiker zal wel
eens een cassette per post versturen of
ontvangen. Meestal is er niets aan de
hand, maar toch komt het nogal eens
voor, dat zo’n per post verstuurde casset¬
te niet wil laden. De redactie van het tijd¬
schrift RAM heeft onderzocht wat de re¬
den daarvan kan zijn en kwam tot de vol¬
gende ontdekking: de PTT sorteermachi¬
nes werken met magneetvelden!
Zoals u weet kunt u bij de PTC programma’s voor de
P2000 en de MSX-computers bestellen. Deze program¬
ma’s worden op een cassettebandje (of soms op floppy)
via de post verstuurd. Een aantal andere computerclubs
levert een soortgelijke service. Daarnaast zijn er een aantal
tijdschriften dat gepubliceerde programma’s ook op cas¬
sette of floppy verstuurt. Ook als u zelf een programma
naar de PTC stuurt maakt u daarbij gebruik van de dien¬
sten van de PTT.
Nu is het vreemde dat bij verschillende organisaties is ge¬
constateerd dat bij de cassettes die per post worden ver¬
stuurd, een veel groter percentage cassettes niet wil laden
dan bij cassettes die rechtstreeks via de winkel worden
aangeschaft. Natuurlijk krijgt iedereen die een cassette bij
de PTC besteld heeft, die fouten vertoont, een nieuwe
maar vervelend is het wel.
De redactie van het tijdschrift RAM is naar een mogelijke
oorzaak op zoek gegaan. Veelal dacht men dat de oorzaak
te vinden was in een verkeerde stand van de weergave-
knop van de cassetterecorder bij de gebruiker. Maar na
enig onderzoek moest men de conclusie trekken dat lang
niet alle fouten daardoor veroorzaakt werden. Men is toen
de cassettes die niet goed ingelezen konden worden en
teruggestuurd waren, gaan analyseren. Het bleek dat van
de teruggestuurde cassettes zo’n 40% zonder problemen
geladen kon worden op een recorder met een rechte kop-
stand. In die gevallen is er dus sprake van een verkeerde
kopstand bij de recorder van de gebruiker. Maar op de
andere 60% stond vaak een heel zwak signaal, soms hele¬
maal niets en soms waren ook delen gewoon gewist! De
redactie van RAM wist zeker dat dit niet aan de duplicee-
rapparatuur kon liggen. De enige oorzaak kon een mag¬
neetveld zijn.
Na veel navragen kwam men er achter dat in de postsor-
teermachines, die op alle grote distributiecentra van de
PTT staan, met een magneetveld wordt gewerkt. Zo’n mag¬
neetveld kan er de oorzaak van zijn dat cassettes geheel of
gedeeltelijk worden gewist, waardoor er niets meer te la¬
den valt.
waarbij u een lege tape in een speciale enveloppe kunt
aanschaffen en versturen. Die enveloppe is door zijn kleu¬
ren goed herkenbaar. Met cassettes die via zo’n speciale
PTT enveloppe worden verstuurd is meestal niets aan de
hand. Logisch, want de PTT stuurt deze enveloppen niet
door het magneetveld, maar verdeelt en sorteert ze buiten
de machines om.
Er zijn nu twee oplossingen voor dit probleem. De eerste:
U maakt gebruik van die speciale PTT enveloppen en cas¬
settes. Dat is echter een prijzige aangelegenheid. De twee¬
de oplossing is de volgende: U kunt zelf op de verpakking
zetten: Cassette, niet door magneetveld. De PTT heeft ver¬
zekerd, aldus de redactie van de RAM, dat wanneer men
dat leest, zo’n enveloppe niet via de sorteermachines met
magneetveld verwerkt wordt.
Duidelijkheid boven alles
De kans, dat de mensen achter de sorteermachines uw
mededeling lezen, is natuurlijk klein wanneer u dat in ge¬
woon schrift doet. Gebruik zo mogelijk een felle kleur en
schrijf duidelijk. Als u liever gebruik maakt van kant en
klare stickers kunt u terecht bij RAM. Via de RAMSOFT-
service zijn speciale stickers (in een felle kleur) met een
duidelijke tekst te bestellen: 30 stuks voor f.5, =, 60 stuks
voor f.7,50 en 100 stuks voor f.12,50 (inclusief verzendkos¬
ten).
Maar of u nu voorbedrukte stickers gebruikt of eigenhan¬
dig aangeeft dat het om cassettes gaat, duidelijkheid dient
voorop te staan! De cassettes die vanuit het bureau PTC
verstuurd worden, zullen in het vervolg in ieder geval dui¬
delijk "gebrandmerkt” worden.
(Bron: RAM, februari 1986)
VERZEND-TIP
Een eenvoudige manier om problemen met het verzenden
van cassettes ten gevolge van magneetvelden, zoals bij¬
voorbeeld van de PTT-sorteermachines, te voorkomen:
verpak uw cassettes in een metalen doosje of blikje. Een
groot aantal snoepjes, dropjes, etc. wordt nogal eens in
dergelijke blikjes verpakt. De snoepers onder ons zullen
ongetwijfeld een voorraadje van dit soort (lege) blikjes
hebben. Het gewicht van zo’n verpakking is meestal mini¬
maal, dus de portokosten zullen best meevallen. Het me¬
taal schermt het magneetveld af én uw cassette is even¬
eens beschermd tegen mogelijke andere beschadigingen.
Een plezierige bijkomstigheid.
De oplossing
De PTT is zich overigens heel goed bewust van dit pro¬
bleem. Vandaar dat zij een eigen cassetteservice heeft,
19
Uitwisselbaarheid van
Wim Tak MSX-programma ’s
Zoals u weet is MSX een standaard die gevoerd wordt door
meerdere fabrikanten, die in hun leveringspakket vaak
meer dan één type MSX-computer voeren. Het idee van de
MSX-standaard is dat alle programmatuur, die voor de
MSX-computers geleverd wordt, onderling op de verschil¬
lende merken en typen uitwisselbaar moet zijn. En juist
hierover bestaan nogal wat misverstanden.
Er kunnen een aantal hindernissen opduiken die de uitwis¬
selbaarheid soms schijnbaar maar soms ook werkelijk in
de weg staan. Hier worden een drietal van deze mogelijk
storende factoren besproken.
De problemen kunnen ontstaan door:
1. Het onjuist laden van een programma vanaf cassette.
2. Een gebrek aan geheugenruimte.
3. Het ten onrechte voeren van het MSX-label op softwa¬
re, omdat het programma niet aan de MSX-standaard
voldoet.
Laadproblemen
Het meest populaire opslagmedium bij (MSX)thuiscompu-
ters is nog steeds de (data)cassetterecorder. Als men pro¬
gramma’s wil opnemen op een cassetterecorder is een
aantal punten belangrijk:
- het opnameniveau. Veel recorders regelen dit automa¬
tisch, maar er zijn ook recorders waar u zelf het niveau
moet instellen.
- de keuze van de band. Het kleinste foutje op de band
(een zogenaamde drop-out) kan voor een computer al
fatale gevolgen hebben (bij muziekopnamen is dit min¬
der kritiek). Dit Het is dan ook verstandig speciale com-
putertape te gebruiken.
- de instelling van de recorderkop. Het is belangrijk dat
de recorderkop exact is ingesteld ten opzichte van de
band, de zogenaamde azimuth afregeling. Als de kop
”scheef” staat, levert dit problemen op bij het terugspe¬
len op een andere recorder. Deze instelling is dus ook
belangrijk voor het terugspelen; ook hier moet de azi¬
muth afregeling correct zijn.
- het gebruik van de juiste verbindingskabel tussen com¬
puter en recorder.
- de stand van de volumepotmeter, die verantwoordelijk
is voor de grootte ("amplitude”) van het uitgangssig¬
naal.
- het gebruiken van de juiste laadinstructie (LOAD of
BLOAD).
- het op een bepaalde afstand plaatsen van de cassette¬
recorder ten opzichte van de monitor of het televisie¬
toestel. Te dicht bij elkaar plaatsen kan soms storingen
geven. De geadviseerde afstand wordt vaak genoemd
in de gebruiksaanwijzing van de recorder.
Wanneer een programma niet goed kan worden ingelezen,
wordt dit nogal eens toegeschreven aan het mogelijk niet
uitwisselbaar zijn van dat programma. Dat is niet altijd het
geval. In de praktijk blijken cassetteproblemen nogal eehs
voor te komen.
Geheugenruimte
Wanneer een MSX-computer werkt met BASIC, heeft de
computer een bepaald maximum aantal bytes als direct
bereikbaar werkgeheugen ter beschikking. Dit direct be¬
reikbare werkgeheugen kan maximaal 28815 bytes groot
zijn en is niet (eenvoudig) uit te breiden door het plaatsen
van extra geheugenmodules.
Programma’s geschreven in BASIC worden dus beperkt
door de maximaal beschikbare ruimte en kunnen dan ook
niet groter worden dan die 28815 bytes.
Als u de MSX-computer aanzet, wordt na korte tijd het
beginscherm zichtbaar. In de tijd, die verloopt tussen het
aanzetten van de computer en het ter beschikking zijn
voor gebruik (de zogenaamde opstarttijd), wordt onder an¬
dere de beschikbare geheugenruimte gecontroleerd. Deze
ruimte is namelijk ook nog afhankelijk van het mogelijk
aangesloten zijn van bijvoorbeeld een floppy disc drive. Als
de MSX tijdens het opstarten een floppy disc interface te¬
genkomt, reserveert de computer een bepaalde hoeveel¬
heid geheugenruimte. Die ruimte is dan dus niet meer be¬
schikbaar als werkgeheugen in BASIC.
Hoeveel ruimte de MSX reserveert voor een disc drive is
afhankelijk van het type MSX en het aantal drives. Hier een
overzicht van het aantal bytes dat u vrij tot uw beschikking
heeft bij de verschillende mogelijkheden:
Configuratie Vrije bytes
MSX-1 met alleen cassette 28815
MSX-1 met 1 disc drive 25502
MSX-1 met 2 disc drives 24456
MSX-2 met alleen cassette 28815
MSX-2 met 1 disc drive 24990
MSX-2 met 2 disc drives 23432
Toelichting bij dit overzicht:
Als uw MSX-1 tijdens het opstarten een floppy disc interfa¬
ce waarneemt, zal de computer altijd uitgaan van twee dri¬
ves, ook al is er maar één aangesloten. Dat zelfde geldt
voor de MSX-2. Dit type MSX heeft weliswaar één inge¬
bouwde drive, maar toch zal de computer bij opstarten
ervan uitgaan dat er twee drives zijn!
Als u de computer wilt "dwingen” met één drive op te star¬
ten, wat geheugenruimte spaart, moet u tijdens het opstar¬
ten de CTRL-toets ingedrukt houden. Hetzelfde geldt als u
de MSX wilt laten opstarten alsof alleen een cassetterecor¬
der aangesloten is (waarmee nog meer geheugen ”over-
blijft”). In dat geval kunt u tijdens het opstarten één van de
SHIFT-toetsen ingedrukt houden. Dat geldt zowel voor
MSX-1 als voor MSX-2. U kunt dus de ingebouwde discdri-
ve "uitschakelen” door de SHIFT-toets ingedrukt te hou¬
den tijdens het opstarten. Dat betekent natuurlijk ook dat u
die drive niet kunt gebruiken!
Dus door op te starten met de CTRL-toets ingedrukt, scha¬
kelt u één (fictieve) disc drive uit. Opstarten met de SHIFT-
toets ingedrukt schakelt twee drives uit: u houdt dan de
configuratie MSX met een cassetterecorder over.
Voor de uitwisselbaarheid kan een en ander gevolgen heb¬
ben. Een programma dat precies past in het geheugen van
een MSX-1 met alleen cassette, zal niet "runnen” op een
MSX-2 met disc drives. In zo’n geval kunt u bijvoorbeeld
het programma wat verkorten, de MSX-2 opstarten met de
SHIFT-toets ingedrukt of hetprogramma in twee delen
splitsen.
20
Niet-MSX-software
Binnen de MSX standaard is vastgelegd dat MSX-compu-
ters een bepaalde minimum hoeveelheid RAM-geheugen
moeten hebben. Dit geheugen is in de computer geplaatst
in de zogenaamde slots. Een slot is eigenlijk alleen een
locatie waarin men geheugen kan ”opbergen”. MSX-com-
puters hebben meestal vier van deze slots en ”ergens”, in
één van deze slots, zit het RAM-gebruikersgeheugen. De
MSX standaard schrijft niet voor in welk slot het geheugen
moet zitten maar beschrijft (in de zogenaamde BIOS) een
methode om uit te vinden in welk slot het geheugen te
vinden is.
De software, die gebruikt wordt op de MSX, moet nu eerst
”uitzoeken” in welk slot van de computer het gebruikers-
geheugen te vinden is en het programma daar wegschrij¬
ven. Tegen deze regel wordt helaas wel eens gezondigd.
Als MSX-software zonder meer aanneemt dat het gebrui-
kersgeheugen zich bevindt in bijvoorbeeld slot 2 en dit slot
is leeg (in de VG 8020 zit het geheugen bijvoorbeeld in slot
3), dan loopt dat programma niet. Het bewuste programma
draagt dan ten onrechte het MSX-label, omdat het niet op
ieder MSX-systeem werkt maar alleen op één bepaald ty-
pe.
Al met al nogal wat zaken, waar u een beetje rekening mee
moet houden. Als u dat doet zult u zeker een hoop plezier
hebben van uw MSX.
Uitslag prijsvraag PTC PRINT nr.4
De oplossing
Het codegetal, dat Bitter had gebruikt, was 687475 en de
gecodeerde tekst was:
PTC/IS/ER/VOOR/IEDERE/GEBRUIKER/
VAN/EEN/PHILIPS/THUISCOMPUTER
Hoe kun je zo’n code kraken? Wel, in principe is een code¬
getal van zes cijfers niet betrouwbaarder dan een codege¬
tal van één cijfer, waardoor iedere letter dus een vast aan¬
tal posities in het alfabet wordt opgeschoven. Er lopen hier
alleen zes verschuivingen tegelijk en voor iedere positie in
de blokjes van zes geldt één van de zes verschuivingsco-
des. Een zelfde teken, in de gecodeerde tekst, dat op de¬
zelfde plaats van de zestallen voorkomt, is op die plaats
ook in de originele tekst eenzelfde teken. Dit kwam in de
opgave nog al eens voor en u had hiervan kunnen uitgaan.
Meer rechtuit is de volgende benadering:
Probeer als eerste cijfer van het codeergetal achtereenvol¬
gens de cijfers 1 tot en met 9. U ziet, dat de gedecodeerde
tekst eigenlijk alleen maar redelijke letters oplevert, als het
eerste cijfer 3, 5, 6, 7, 8 of 9 is.
Nu proberen we hetzelfde voor het tweede cijfer. Hier val¬
len 1,2, 3 en 4 af als onredelijk. Nu gaan we de overgeble¬
ven combinaties van de eerste twee cijfers proberen. Niet
dat dit iets oplevert behalve dan dat een aantal combinaties
door onmogelijke lettercombinaties afvalt. (Na een Q komt
toch meestal wel een U). Oplettende puzzelaars zien nu
echter bij de begincijfers 68 als eerste letters verschijnen
PT en vermoeden, dat de codezin wel eens met PTC zou
kunnen beginnen. Dan verschijnt er
PTC.../....OR/...ERE...BRU...R/
V...EEN...ILI...THU...OMP...R
Wie dan nog niet het woord THUISCOMPUTER aan het
eind ziet staan, is ongeschikt voor de geheime dienst.
De computer wordt hier alleen gebruikt om snel even de
gedecodeerde tekst uit te rekenen en te tonen.
De winnaars
Een twintigtal oplossingen deze keer, waarvan één in het
frans. Ja, ja, PTC gaat internationaal. De meeste inzenders
hebben opgemerkt, dat een aantal tekens in de gecodeer¬
de tekst geen letters kon zijn. Dat maakte de decodering
van het eerste stukje gemakkelijk. Daarna was het een flui¬
tje van een cent. Bij het maken van deze puzzel was het
probleem, dat de ASCII-sets van de P2000 en de MSX niet
helemaal gelijk zijn. De afwijkingen, die hier van belang zijn
bevinden zich boven ASCII 90, ofwel hoofdletter Z. Daarom
moest de codeersleutel worden afgetrokken van de tekst
om de gecodeerde tekst te krijgen. Als de codeersleutel
ook opgeteid zou mogen worden, was het misschien wat
moeilijker geweest. Maar dan had ik voor MSX en voor
P2000 verschillende opgave moeten maken. En dat had de
oplossing weer gemakkelijker gemaakt, misschien.
Allereerst verdient Bert Veerman uit Huizen een eervolle
vermelding. Hij stuurde helemaal geen computerprogram¬
ma in. Door een goede analyse van het probleem was ”het
schrijven van een BASIC-programma de moeite niet meer
waard”. Echter, de vraag was een computerprogramma,
dus kunnen we deze originele inzending helaas niet belo¬
nen.
Maar wie worden wel beloond voor hun inspanningen? Er
waren geen oplossingen die zodanig uitblonken door origi¬
naliteit of kwaliteit dat de inzender zonder discussie een
GOED NIEUWS VOOR
ALLE PHILIPS MSX-
COMPUTER-BEZITTERS
Sinds kort heeft de LOI haar pakket compu¬
tercursussen uitgebreid met de schriftelijke cur¬
sus Microcomputers en BASIC voor de MSX-
computer. In 24 lessen leert u programmeren in
BASIC en maakt u kennis met de vele mogelijk¬
heden die uw MSX-computer te bieden heeft.
U krijgt inzicht in de toepassingen op uw MSX-
computer en in de werking en de mogelijkhe¬
den van de beschikbare (rand)apparatuur.
Naast de schriftelijke lessen organiseert de LOI
één praktijkdag.
Wilt u meer informatie over de cursus Micro¬
computers en BASIC voor de MSX-computers
bel dan 071—45 18 82* voor de gratis stu¬
diegids.
leidse onderwijs
instellingen
Leidsedreef 2, 2352 BA Leiderdorp, erkend
door de minister van onderwijs en wetenschap¬
pen bij beschikking van 5 maart 1975, kenmerk
BVO/SFO-129.718.
21
22
prijs in de wacht kon slepen. Er is dus eerlijk geloot, met
het volgende resultaat: Eerste prijs: P. Fransen, Lorentz-
straat 23, 5756 BM Vlierden.
Tweede prijs: R.G.A.J.M. Rovers, Vossenhof 20, 5095 BS
Hooge Mierde.
Derde prijs: Th. Nes, Achterom 22, 1671 CG Medemblik.
Van harte gefeliciteerd! Alle prijswinnaars krijgen bericht
thuis.
Het winnende programma
Uiteraard willen we graag het winnende programma publi¬
ceren. Daarover toch nog even een opmerking:
Het is een enorm karwei de listings over te typen. Een
typefout is daarbij snel gemaakt. Daarom het verzoek uw
oplossingen op een bandje toe te sturen, ingetikt op 40
karakters breedte. De listing kan dan uitgeprint worden op
een goede printer en meteen afgedrukt worden. Als u zelf
een goede printer bezit, kunt u de listing uiteraard ook zelf
afdrukken. Maar gebruik dan geen zebrapapier!
Dan volgt hier het winnende programma:
10 PRINT CHR*<12>
20 REM"Decodeerprogramma PTC 1 1986"
30 A*="JL<+BN)=K+OJIJ(E>??J>+@@< JNED0L ? 0
=G* ?=6+1CCDBLL *N@NÊL>IEIQM@L"
40 A= 1
50 FÜR X~ A TCHA+5)
60 READ 1
70 B$=M I (A$ , X ? 1)
80 IF B$="" THEN 300
90 B“ASC(B$)
100 C=B+Z
110 D*=CHR*(C)
120 E$=E$+D*
130 NEXT X
140 A=A+-6
150 RESTORE
160 GOTO 50
200 DATA 6,8,7,4,7,5
300 PRINT E$
310 END
320 PRINT
MSX-LOGO
Rob Cordes
De programmeertaal LOGO onderscheidt
zich in een aantal opzichten van alle an¬
dere programmeertalen. Eén van de
meest in het oog springende verschillen
is dat LOGO nationale versies kent. Met
de Nederlandse versie van LOGO, die
door Philips Nederland als insteekmodule
voor MSX in de handel wordt gebracht,
kunt u bij het programmeren dus gebruik
maken van gangbare woorden uit de Ne-
LOGO staat voor logica
Het aantal programmeertalen is nauwelijks nog te tellen.
Elke taal kent zijn aanhangers, die altijd fanatiek vóór zijn,
maar ook zijn tegenstanders, die even fanatiek tégen zijn.
De taal LOGO vormt daarop geen uitzondering. Laat u
daardoor niet van de wijs brengen. De situatie bij de com¬
putertalen is niet anders dan bij de nationale talen. Ook
daar vindt iedereen zijn moedertaal de mooiste, de beste
en de makkelijkste taal van de wereld; alle andere talen zijn
vreemd. Ik heb eens met een Amerikaan gesproken die
niet wilde geloven dat je in het Nederlands, een taal die in
Amerikaanse oren erg ”hard” klinkt, lieve dingen zou kun¬
nen zeggen.
Tegenstanders van LOGO zeggen dat je in die taal geen
besturingssysteem voor een computer kunt programme¬
ren. Nou, dat kan in BASIC ook niet, en dat is toch wel de
meest verbreide programmeertaal ter wereld. Als we de
vergelijking nog even doortrekken dan kun je zeggen dat
BASIC het Engels onder de computertalen is. Iedereen
kent die taal wel zo’n beetje, maar hanteert hem op zijn
eigen manier. Vandaar de talloze dialecten. Ook in andere
opzichten gaat de vergelijking tussen BASIC en Engels op.
BASIC, zeggen de tegenstanders, is geen logische taal. Hij
dwingt je niet om gestructureerd te programmeren (al kan
derlandse taal. Dit is één van de redenen
waarom onderwijsdeskundigen LOGO
aanprijzen als de ideale programmeertaal
voor jonge mensen die thuis willen raken
op de computer. LOGO sluit ook uitste¬
kend aan op andere hogere program¬
meertalen, zoals Pascal. Alle reden dus
om in PTC PRINT eens wat meer aandacht
aan LOGO te besteden.
het wel). De mensentaal Engels is ook allerminst logisch;
denk alleen maar aan het verband tussen spelling en uit¬
spraak. Een Engelse organisatie voor spellingsfereenfau-
deging zou er zijn hart aan kunnen ophalen. Een Engel¬
sman heeft eens uitgerekend dat je Shakespeare op meer
dan honderd verschillende manieren zo kunt schrijven, dat
je het als ”sjeekspier” kunt uitspreken.
LOGO daarentegen blinkt uit door de logische opbouw. In
dat opzicht is deze computertaal te vergelijken met Espe¬
ranto, de kunstmatige taal die alleen regels en geen uitzon¬
deringen kent. Ik ben me ervan bewust dat de meeste ver¬
gelijkingen mank gaan. Ook die tussen LOGO en Esperan¬
to. Want Esperanto is een internationale taal, en LOGO een
nationale, zoals we in het begin van dit artikel hebben ge¬
zien.
Een schildpad als cursor
De meeste cursussen voor programmeertalen beginnen
met rekeninstructies. Dat is niet zo onlogisch, want per slot
van rekening is een computer in oorsprong een rekenma¬
chine. Maar je kunt ook met iets heel anders beginnen.
Dirk Hezius doet dat in zijn vaste rubriek ”BASIC zonder
rekenen” in dit blad.
Ook de aankomende LOGO-programmeur begint niet met
rekenen maar met tekenen. Dat sluit goed aan bij de ma¬
nier waarop kinderen dingen leren. Een kind van vier dat
naar school gaat, begint ook niet met de tafels van verme¬
nigvuldiging, maar met het tekenen van huisjes, boompjes
en beestjes.
Het tekenen van figuren gebeurt bij LOGO met een intelli¬
gente schildpad, die de schrijfkunst machtig is. Vandaar
dat Philips als vignet voor LOGO een vriendelijk uit zijn
oogjes blikkende schildpad heeft gekozen.
De programmeur kan de schildpad, die eigenlijk een ludie¬
ke cursor voorstelt, allerhande opdrachten geven. Dat
gaat, zoals gezegd, met gewone woorden uit de Neder¬
landse taal. Bij de instructie 'Vooruit 10” of, afgekort, ”vt
10”, doet de schildpad 10 stapjes vooruit, waarbij hij een
streep trekt zoals een slak. U kunt hem ook linksom en
rechtsom laten draaien (met de instructies "links” en
"rechts”). Op die manier kunnen de meest ingenieuze te¬
keningen op het scherm worden gemaakt.
In LOGO-taal noemt men deze instrcties "primitieve proce¬
dures”. Met een handjevol "woorden” kan een beginnende
LOGO-programmeur al heel snel (laten we zeggen binnen
een kwartier) leuke dingen doen.
Het is natuurlijk niet mogelijk in dit artikel een volledige
beschrijving te geven van alle mogelijkheden die de schild-
padtaal van LOGO biedt. Laten we dus volstaan met op te
merken dat de schildpad onzichtbaar kan worden gemaakt,
maar dat het aan de andere kant mogelijk is met maximaal
30 schildpadden te werken. Een hele kolonie dus. Het is
ook niet nodig elk lijntje van de tekening afzonderlijk te
trekken. Er is een herhaal-opdracht waarmee met één pro¬
cedure een ingewikkelde tekening kan worden gemaakt.
Verder kan de LOGO-programmeur gebruik maken van
kleuren, de schildpadden met een zelf gekozen snelheid
over het scherm laten snellen en zelfs de vorm en de kleur
van de schildpad zelf te bepalen.
Een schildpad is trouwens niet altijd een schildpad. Met de
opdracht ”zetv” kunt u de schildpad veranderen in een bal,
een hart, een hond, een kat, een vrachtauto, een raket, een
stukje muur, een helikopter, een locomotief of een treinwa¬
gon. Met deze voorwerpen kunt u hetzelfde doen als met
de schildpad.
Leren aan de computer
Eén van de aardigste dingen van LOGO is dat de LOGO-
programmeur niet alleen van de computer kan leren, maar
ook zelf de computer iets kan leren. Dat gebeurt met de
procedure "leer”. Hiermee kunt u de computer leren wat
bij voorbeeld een vierkant is (LOGO weet nog niet wat een
vierkant is, maar u kunt het hem wel leren). Op dezelfde
manier kunt u de computer (of de schildpad zo u wilt) aller¬
lei andere dingen leren. Wat hij eenmaal heeft geleerd, ver¬
geet hij niet zolang u de computer maar niet uitschakelt.
Als u de computer eenmaal hebt geleerd wat een vierkant
of welke andere figuur dan ook is, kunt u hem opdracht
geven zo’n figuur te tekenen. U zou hem kunnen leren hoe
een straat, een vliegveld of een haven eruit ziet.
Sprites
Dit is natuurlijk helemaal fout. LOGO kent geen sprites (al
kunt u de computer natuurlijk wel leren wat dat zijn). Wat
LOGO wel kent zijn "vormen”. U kunt deze vormen zelf
definiëren: poppetjes, auto’s, vogels, vliegtuigen, kortom
alles wat vorm heeft. Als dat is gebeurd kunt u die vormen
op het scherm brengen en laten bewegen. Het.is helemaal
niet zo erg moeilijk om op die manier uw eigen tekenfilm te
maken.
Net als de sprites bij BASIC kunt u de vormen van LOGO
laten botsen en, afhankelijk van zo’n botsing, bepaalde din¬
gen laten gebeuren. In LOGO-taal spreekt men van demo¬
nen.
LOGO is een zeer geduldige taal. Als u een fout maakt,
krijgt u onmiddellijk een mededeling op het scherm die
aangeeft wat u fout hebt gedaan. Het enige dat u dan nog
hoeft te doen is de regel nogmaals intikken, nu zonder
fout. Voor zover ik heb kunnen nagaan is het niet mogelijk
dat de computer vast komt te zitten. Eigenlijk kan er dus
niets echt fout gaan.
Bewaren
Een belangrijk onderdeel van LOGO zijn de zogenaamde
procedures. Bij andere programmeertalen spreekt men
meestal van programma’s, maar bij LOGO heeft alles nu
eenmaal zijn eigen naam. Als u met LOGO gaat werken,
zult u merken dat u al snel moeiteloos tamelijk lange pro¬
cedures kunt definiëren, bij voorbeeld om vormen op het
scherm te laten bewegen; al dan niet begeleid door mu¬
ziek. Het zou natuurlijk jammer zijn als u een procedure
elke keer helemaal opnieuw zou moeten intikken, maar dat
hoeft ook niet. Met de primitieve procedure "bewaar” kunt
u de door u zelf gemaakte procedure bewaren op cassette
of diskette. U kunt ook de plaatjes zelf bewaren, maar al¬
leen op diskette.
Hebt u de beschikking over een printer, dan kunt u de
procedure ook zwart op wit laten afdrukken. Het voordeel
daarvan is niet alleen dat er weinig kan gebeuren met een
procedure op papier, zodat u desnoods het verhaal ge-
23
makkelijk opnieuw kunt intikken, maar vooral dat u delen
van de procudure zonder meer kunt overnemen in andere
procedures. Hebt u bij voorbeeld een space shuttle gedefi¬
nieerd, dan kunt u die eenvoudig overnemen in andere pro¬
cedures.
Hoe leert u LOGO
Philips levert (als enige) de MSX-LOGO-insteekmodule. De
module past op elke MSX-computer, ongeacht merk en
type. De module wordt geleverd in een fraaie doos, waarin
ook een 134 pagina’s tellende gebruiksaanwijzing is onder¬
gebracht, die ”Een inleiding tot MSX-LOGO” heet. Hiermee
kunt u heel behoorlijk leren programmeren in LOGO. Het
eerste gedeelte van de gebruiksaanwijzing voert u stap
voor stap binnen in de geheimen van de programmeertaal
LOGO. Niet alle opdrachten worden even uitvoerig behan¬
deld, maar ik denk dat u met deze gebruiksaanwijzing heel
verdienstelijk kunt leren programmeren. Achterin het boek
is trouwens een overzicht opgenomen van alle primitieve
procedures die u kunt gebruiken.
De gebruiksaanwijzing is helder en duidelijk geschreven. Ik
heb natuurlijk niet even het hele boekje van A tot Z door¬
gewerkt, maar wat ik aan voorbeelden heb geprobeerd
werkte zoals het moet. De auteur is trouwens niemand
minder dan Seymour Papert, de geestelijke vader van de
programmeertaal LOGO. De lange lijst medewerkers geeft
het vertrouwen dat de gebruiksaanwijzing met de nodige
zorgvuldigheid tot stand is gekomen.
De Open Dagen in Nieuwegein
Lizet van Os
Het zit er weer op, het PTC weekeinde in Nieuwegein. Na
een paar drukke laatste dagen van voorbereiding, inpakken
en weer uitpakken, waren we toch wel erg benieuwd hoe
het allemaal zou verlopen. Nu het weer achter de rug is,
kan de PTC terug zien op twee geslaagde dagen. Natuurlijk
waren er een aantal zaken die best wat beter of anders
geregeld hadden kunnen worden, maar al met al zijn we
best tevreden. Aan een schatting van het aantal bezoekers
durf ik met niet te wagen. Vooral ’s zaterdags was het erg
druk, op zondag was het wat rustiger.
Een blik op deelnemers en bezoekers
Er was veel te zien, hoewel het jammer was dat er nog niet
veel MSX-demonstraties waren. Misschien nog beginners-
vrees? In ieder geval hebben de MSX-ers die naar Nieuwe¬
gein zijn gekomen, kunnen zien dat ook bij de P2000-
gebruikers "simpele” toepassingen erg leuk kunnen zijn.
Hopelijk hebben veel MSX-liefhebbers inspiratie opgedaan
zodat we hen de volgende keer ook in grote getale achter
de tafels tegenkomen.
Terwijl veel ouders een ronde langs de verschillende de¬
monstraties maakten of één van de lezingen bijwoonden,
vermaakten de kinderen zich prima in de jeugdhoek. Hier
was gelegenheid om zelf met een P2000 of een MSX aan
de gang te gaan, je eigen briefpapier te laten maken of de
computerbestuurde trein te bewonderen. Het enthousias¬
me van de jeugdige bemanning van deze stand was erg
inspirerend.
Natuurlijk waren veel mensen gekomen voor de "winkel
van Toon”, waar weer diverse koopjes te halen vielen. Daar
was het dan ook beide dagen hard werken. De EHBO voor
de diverse typen computers werd eveneens door een
groot aantal leden geraadpleegd. Hopelijk zijn alle proble¬
men die daar voorgelegd zijn naar ieders tevredenheid op¬
gelost.
Uiteraard was er nog veel meer te zien, bekende en minder
bekende toepassingen, spelletjes, programma’s. Maar al¬
les werd met hetzelfde enthousiasme gedemonstreerd en
uitgelegd. Hopelijk voor velen een reden om de volgende
keer weer van de partij te zijn.
mm
mmmm
f op= jp??
m vkiï£il&r ?
24
Getalconversie
G.J. Bakker
Wie in het dagelijks leven niet tot tien kan
tellen zal daardoor veel moeilijkheden on¬
dervinden in het maatschappelijk verkeer.
Tien is dus duidelijk een niet weg te cijfe¬
ren getal voor ons en het is daarom mis¬
schien goed even stil te staan bij de
vraag: wat is tien? In ons talstelsel zal het
antwoord moeten zijn het aantal vingers
van één stel normale handen. Wij spreken
van het tientallig stelsel omdat wij werken
met de tien cijfers: 0,1,2,3,4,5,6,7,8,9. We
stellen deze hoeveelheid voor door het
symbool ”10”. Die keuze van tien cijfers is
echter maar min of meer toevallig; voor
hetzelfde geld was 5 het laatste cijfer ge¬
weest. Men zou dan vanuit ons huidige
talstelsel spreken over zestallig stelsel
maar het symbool 6 zouden we niet ken¬
nen. Dit zou dan weer worden voorgesteld
door het symbool ”10” (en misschien ook
wel zijn aangeduid met het woord ”tien”).
Al dit gefilosofeer over talstelsels zou niet nodig zijn ge¬
weest, ware het niet, dat electronische digitale schakelin¬
gen nu eenmaal makkelijk werken met het tweetallig stelsel
(wèl of geen spanning, wèl of geen stroom). Het is dus
logisch, dat onze huidige computers zijn gebaseerd op het
tweetallig stelsel en het daaruit afgeleide achttallige en
(vooral) zestientallige stelsel ofwel het binaire, het octale
en het hexadecimale stelsel.
Het binaire stelsel
Dit tweetallig stelsel bestaat uit twee soorten getallen, na¬
melijk nul (0) en één (1). Hier volgt een lijstje van decimaal
naar binair:
decimaal binair
0 00000000
1 00000001
2 00000010
3 00000011
4 00000100
5 00000101
255 11111111
Waarom staan die binaire getallen in groepjes van acht? De
reden is dat de computer daar graag mee werkt. Zo’n
groepje van acht heet een byte. In één byte komen acht
binaire cijfers voor. Eén zo’n cijfer heet een bit.
Kortom: een byte bestaat uit acht bits en een bit is of een
nul (0) of een één (1).
Het omrekenen van binair naar decimaal en omgekeerd
vindt als volgt plaats:
Van binair naar decimaal:
Het binaire getal 00001001 moet omgerekend worden naar
decimaal.
positie 76543210
Nog even extra uitleg in woorden. Het bit dat geheel rechts
staat, staat op de nulde positie en het bit dat geheel links
staat, staat dus op de zevende positie. Het grondtal n (in
dit geval 2) geeft aan welk n-tallig getal naar een decimaal
getal moet worden omgerekend. De exponenten stellen de
positie van het bit voor.
Evenzo is bijvoorbeeld 10001001 gelijk aan 1 + 2 3 + 2 7 en
dat is gelijk aan 137 (decimaal).
Machinetaal is de taal die de computer direct verstaat, dat
wil zeggen zonder enige vorm van vertaling. Bij een machi-
getal 00001001
lx2°=lx 1 = 1
0x2 1 =0x 2=0
0 x 2^ = 0 x 4=0
lx2^=lx 8=8
0 x2 4 =0x16=0
0x2 5 =0x32=0
0x2 6 =0x 64=0
0 x 2 7 = 0 xl28 = 0
decimaal 9
Van decimaal naar binair:
Het decimale getal 11 moet worden omgezet in een binair
getal.
decimaal 11
11 gedeeld door 2=5 rest 1
(Bit op positie 0 is 1)
5 gedeeld door 2=2 rest 1
(Bit op positie 1 is 1)
2 gedeeld door 2=1 rest 0
(Bit op positie 2 is 2)
1 gedeeld door 2=0 rest 1
(Bit op positie 3 is 1)
Dat is 1011 binair. Omdat we in groepjes van 8 werken,
wordt het in de computer dus 00001011 binair. Men moet
dus een decimaal getal delen door twee totdat een quo¬
tiënt nul is verkregen.
Hier volgt nog een voorbeeld.
Decimaal 34
34 gedeeld door 2 =17 rest 0
17 gedeeld door 2=8 rest 1
8 gedeeld door 2=4 rest 0
4 gedeeld door 2=2 rest 0
2 gedeeld door 2=1 rest 0
1 gedeeld door 2=0 rest 1
Dit is binair 00100010
25
netaalprogramma komen alleen nullen en enen voor. Hier
wordt dus het binaire stelsel toegepast.
Het achttallige of octale stelsel
Het achttallge stelsel is het minst belangrijke stelsel van de
eerder genoemde talstelsels. Het bestaat uit acht soorten
cijfers, namelijk 0,1,2,3,4,5,6,7. Het omrekenen van octaal
naar decimaal en omgekeerd vindt op gelijksoortige wijze
plaats als bij het tweetallige stelsel.
Van octaal naar decimaal:
Het octale getal 24
4x8° =4x1=4
2 x 8 1 = 2 x 8 =16
decimaal 20
Het cijfer 4 staat op de nulde positie en het cijfer 2 op de
eerste positie. Het grondtal bij binair-decimaal was 2 en
hier is het grondtal 8. Bij het 258-tallige stelsel wordt het
grondtal dus 258.
Van decimaal naar octaal:
Het omzetten van decimaal naar octaal gaat ook weer op
dezelfde manier.
Decimaal 57
57 gedeeld door 8=7 rest 1
7 gedeeld door 8=0 rest 7
Het octale getal wordt dus 71.
Het hexadecimale stelsel
Hexadecimaal betekent 16. In dit stelsel wordt gewerkt met
de getallen: 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E en F. A tot en met
F stellen daarin de decimale getallen 10 tot en met 15 voor.
In assembleertaal staat bij de P2000T alles in het hexadeci¬
male stelsel geschreven. Zo heeft bijvoorbeeld het adres
&H70AD als inhoud &H0A. Dit is 1 byte want &H0A is binair
00001010. Het getal 0A leest echter veel gemakkelijker.
Het omrekenen van hexadecimaal naar decimaal en omge¬
keerd gaat ook weer op de bekende manier.
Van hexadecimaal naar decimaal:
Het hexadecimale getal FE
E x 16° = E x 0 = 14
F x 16 1 = F xl6 =240
decimaal 254
Van decimaal naar hexadecimaal:
Het decimale getal 56
56 gedeeld door 16 = 3 rest 8
3 gedeeld door 16 = 0 rest 3
Het hexadecimale getal wordt dus 38
Het decimale getal 103
103 gedeeld door 16 = 6 rest 7
6 gedeeld door 16 = 0 rest 6
Het hexadecimale getal is dus 67.
Het zal nu duidelijk zijn dat men kan rekenen met verschil¬
lende talstelsels. Maar misschien is het toch slimmer om
hiervoor een programma te maken zodat de computer het
allemaal uitrekent.
Nieuwe prijsvraag
De heer Bitter begint langzamerhand een bekende per¬
soonlijkheid te worden. Zijn ervaringen geven iedere
maand weer aanleiding tot het voorleggen van een aardig
probleem aan de lezers van PTC PRINT, waarover velen
zich tot in de kleine uurtjes het hoofd breken. Ook deze
keer kon hij het niet laten de enthousiaste computeraars
weer stof tot nadenken te geven. Dus, laat uw hersens
knarsen en de toetsen van uw MSX of P2000 rammelen om
het volgende probleem op te lossen.
Van digitaal naar analoog
”Barst”, zei Bitter, toen hij een uur later dan afgesproken
binnen kwam. (Of Bitter precies ”Barst” zei, weet ik eigen¬
lijk niet meer. In ieder geval kwam het daar wel op neer).
”Barst, dat heb je ervan als je er zo’n tweeslachtig tijdsys¬
teem op na houdt.”
”lk veronderstel, dat je de trein gemist hebt”, informeerde
ik, terwijl ik voor ons beiden een hartversterking inschonk.
”Dat is toch onvermijdelijk”, zei Bitter, ”Kijk, in het spoor¬
boekje staan alle vertrektijden digitaal aangegeven, dus
11.25, 22.31, enzovoort, maar op de stations hebben ze
nog steeds analoge klokken. Nu zijn analoge klokken veel
beter dan digitale klokken, want zonder te rekenen kun je
aan de stand van de wijzers zien, of je rennen moet of niet.
Nou, de trein ging om 11.55 en ik realiseerde me pas dat
dat VIJF VOOR TWAALF is, toen de trein voor me we¬
greed. Het komt natuurlijk ook, omdat die digits achter de
punt maar tot 60 lopen in plaats van tot 100.”
”Dat hoeft ons toch niet meer te overkomen”, zei ik, ”als
we nu eens een computerprogrammaatje maken, dat een
digitale tijd omzet in een analoge tijd, gewoon als tekst en
we koppelen de computer aan de ene kant met een digitale
klok en aan de andere kant met een spraakchip, dan weten
we altijd hoe laat het is.”
”Ja”, zei Bitter, ”rmaar niet iedereen heeft een spraakchip,
althans nog niet.”
”Zo is het”, zei ik, ”die spraakchip komt wel. Maar nu eerst
het programma om van een digitale tijd een analoge tijd te
maken.”
Dus, lieve lezertjes van PTC PRINT, hier komt de opgave
van deze keer:
Maak een computerprogramma, dat een digitale tijd omzet
in een analoge tijd volgens het Nederlandse spraakgebruik.
Dat wil zeggen, als er ingetikt wordt 11.45, dan moet er op
het scherm komen
KWART VOOR TWAALF ’S-MORGENS
of iets dergelijks en intikken van 14.40 moet op het scherm
toveren
TIEN OVER HALF DRIE ’S-MIDDAGS.
In de keuze van teksten, zoals ’s-morgens, in de ochtend,
’s-avonds, in de nacht en dergelijke bent u vrij. Extra tek¬
sten zijn ook toegestaan. De ingetikte tijd hoeft niet nauw¬
keuriger te zijn dan in minuten. Seconden zijn niet vereist.
Het gaat dus om het programma. Stuur niet alleen een
LIST-ing, want dat beoordeelt zo moeilijk. Stuur een korte
beschrijving van het programma erbij. Geluidseffecten
worden niet apart beoordeeld, maar kunnen zeker bijdra¬
gen tot de eindindruk van het programma.
Wat valt er te winnen?
Uiteraard zijn er weer leuke en waardevolle prijzen te win¬
nen. De eerste prijswinnaar kan kiezen uit een Miniware-
modem voor de MSX of voor de P2000 (beschikbaar ge¬
steld door Miniware B.V.). De tweede prijs bestaat uit pro¬
gramma’s naar keuze voor de P2000 of de MSX met een
waarde van ten hoogste f.215, =, beschikbaar gesteld door
de PTC. De derde prijswinnaar kan programma’s uitkiezen
voor de MSX of de P2000 met een waarde van ten hoogste
f.120, =, eveneens beschikbaar gesteld door de PTC.
Alle inzendingen worden beoordeeld door een deskundige
jury. Medewerkers van het bureau PTC, de redactie en hun
familie zijn uitgesloten van deelname.
Uw oplossing moet uiterlijk 10 mei a.s in het bezit zijn van:
Redactie PTC PRINT
Postbus 67
5600 AB Eindhoven
Bij uw oplossing duidelijk uw naam, adres en lidnummer
vermelden. De uitslag wordt bekendgemaakt in het volgen¬
de nummer van PTC PRINT. Veel programmeerplezier!
MINITEXT en printers
Jan Gieles
MINITEXT is een eenvoudig tekstverwer¬
kingsprogramma voor de P2000, dat gro¬
tendeels in BASIC is geschreven en waar¬
bij alle printer-specifieke routines in een
aangesloten blok zijn opgenomen. Door
middel van het bijbehorende programma
Printerkeuze kan dat blok in zijn geheel
worden vervangen door een blok voor een
andere printer, waarmee het programma
Variëteit in printers
Om te beginnen zijn vrijwel alle printers onderling verschil¬
lend zowel in hardware als in software. Het geproduceerde
letterbeeld hangt onder andere af van de gebruikte teken¬
set, het gebruikte letterwiel, de interne tekenvertaling, de
instelling op een eventueel toetsenbord en de stand van
een aantal dipswitches.
Ook zijn er grote verschillen in de geleverde prestaties.
Natuurlijk kunnen alle printers letters en cijfers weergeven,
maar bij de leestekens heerst al een grote verwarring. De
overige printerfuncties als onderstrepen, vet printen, dub¬
bele of halve breedte, initialisering, letter- en regelafstand
en vrijwel alle wagenbewegingen zijn per printer anders of
in het geheel niet beschikbaar.
Toch zijn juist de eigenaren van wat duurdere, krachtige
printers bijzonder geïnteresseerd in het kunnen aansturen
van zoveel mogelijk functies, omdat zij hun printer optimaal
willen kunnen benutten. Voor deze printers gebruik ik een
machinetaal printroutine, waarbij op letterniveau wordt ge¬
keken, zodat besturingstekens, behalve achter een $ op
een aparte regel ook ergens middenin een regel kunnen
voorkomen. Hierdoor wordt het mogelijk om ook aparte
woorden te onderstrepen, vet te printen, op dubbele
breedte te printen en dergelijke.
Dit heeft geleid tot het ontstaan van twee soorten bestan¬
den:
- Standaard, met alleen ASClI’s onder de 128 en regel-
commando’s (na $)
- Speciaal, met printer-specifieke codes boven de 128
voor diverse bijzondere tekens en voor besturings-
coomando’s, zoals we dat al kennen bij de HERMES
printer.
Van deze laatste soort dreigen er steeds meer te komen.
aangepast is voor die andere printer.
Met grote regelmaat verschijnen er ver¬
zoeken, om MINITEXT voor bepaalde, nog
niet in het programma Printerkeuze opge¬
nomen, printers geschikt te maken. Zo
langzamerhand is daar wat ervaring mee
opgedaan en hieronder volgt een over¬
zicht van wat daar allemaal bij komt kij¬
ken.
Ontwikkeling MINITEXT-standaard
Bij zoveel verschillende printers ontstaat de situatie, dat er
allerlei merkwaardige tekens en stuurcodes tussen de
tekst in een bestand kunnen voorkomen. Hiervoor zijn AS¬
ClI’s boven de 128 gekozen, die op het scherm inverse
tekens kunnen produceren, waaraan de functie enigszins
te zien is.
Het zou erg prettig zijn als bestanden, die op verschillende
machines worden gemaakt, toch onderling uitwisselbaar
zouden zijn. Dit is nu, zelfs bij de standaard bestanden
onderling, niet zonder meer het geval. Er is namelijk altijd
wel onenigheid over de interpretatie van sommige tekens
en dat moet eigenlijk met een vertaaltabel worden opge¬
vangen. Tot op heden is dat nog maar nauwelijks uitge¬
voerd maar het is iets, dat wel betrekkelijk eenvoudig kan
gebeuren.
Speciale bestanden zouden eigenlijk van het begin af aan
onderling uitwisselbaar moeten worden gemaakt. Daartoe
heb ik een standaard tekenset gedefinieerd, die alles om¬
vat wat enig printerprogramma aan tekens in een bestand
kan produceren. Deze set vindt u in figuur 1. De eenduidi¬
ge tekens zijn kortheidshalve weggelaten. Het rechterdeel
omvat de interpretatie (met alternatieven) van de codes,
die in het linkerdeel zijn opgenomen. Bij het aanpassen
worden dan per printer al die tekens afgevangen, waarmee
de printer geen raad weet (spatie voor een onbekend te¬
ken, ignore voor een onbekend commando) en worden al
die tekens geïnstalleerd, die de printer wel aan kan.
Om een Std-bestand met een Std-programma te kunnen
afdrukken moet in dit laatste programma een vertaaltabel
zijn opgenomen, die de onbekende tekens afhandelt. Als
dat niet gebeurt, dan wordt in de meeste gevallen het ge¬
ïnverteerde teken zelf afgedrukt. Onbekende commando’s
worden uiteraard zelfs met een vertaaltabel niet uitge¬
voerd.
27
Tekenvertaling van MINITEXT-bestand naar printer
Toets
ASCII Scherm
dec
hex
£
35
23
T
@
6 4
40
@
[
91
5B
4-
DEF
%
92
5C
1
2
]
93
5D
' of "
94
5E
T
#
95
5 F
#
—
96
60
—
✓
1 23
7B
1
4
DEF
#
1 24
7 C
II
N
1 25
7D
3
4
:
1 26
7 E
-r
•
127
7F
D
DEF
»t
1 62
A2
FTT
DEF
$
1 64
A4
1$
DEF
N
1 67
A7
t
DEF
(
1 68
A8
(
DEF
)
1 69
A 9
)
DEF
*
1 75
AF
/
DEF
0
1 76
B0
0
DEF
2
1 78
C\]
CQ
2
DEF
3
1 79
B3
3
DEF
5
181
B5
5
DEF
F
1 98
C 6
F
DEF
X
21 6
D8
X
DEF
m
237
ED
m
DEF
0
239
EF
0
DEF
y
249
F9
yj
DEF
222
DE
ti
DEF
]
221
DD
DEF
[
21 9
DB
DEF
—
224
EO
—
DEF
•
1 74
AE
.
DEF
H
200
C 8
!
H
DEF
L
204
CC
Li
DEF
V
21 4
D 6
V;
DEF
N
206
CE
Ni
1
DEF
D
1 96
C 4
i
Di
DEF
E
1 97
C 5
Printer
dec hex
Keuze ( SP:
1 ,2,3
£ SP
@ SP
[ t- SP
\ SP
] -» SP
T ~ SP
# SP
IG
spatie,IG=ignore)
Omschrijving 51 _ B3
pond
} SP
' IG
ƒ SP
IG
f* SP
° SP
jj _ ^_
VR IG
HS IG
BS IG
ST IG
SP IG
OH IG
OL IG
VP IG
NP IG
DB IG
EB IG
apestaartje
vierk.haak, pijltje
1 / 2
vierk.haak, pijltje
pijltje, dakje
hek
onders treping
1 M
verticale streep
3/A
integer deling
spatie
trema + BS
paragraaf
acc. grave + BS
accolade
accolade
acc. aigu + BS
nul met streep
kwadraat
derde macht
cedille + BS
gulden
acc. circ. + BS
mu
graden
JJ_
vorige regel
halve spatie
backspace
start onderstrepen
stop onderstrepen
1/2 omhoog
1/2 omlaag
vet printen
normaal printen
dubbele breedte
enkele breedte
28
Figuur 1: tekenvertaling van MINITEXT-bestand naar printer
In het kader van de nieuwe standaard is ook het program¬
ma voor de HERMES printer aangepast. Enkele codes zijn
veranderd en andere toegevoegd. Ook kan daar nu een
enkel woord onderstreept worden en kunnen dubbelsla¬
gen worden gemaakt.
Aanpassing voor een printer
Er moet dus veel informatie over de printer bestaan en
wanneer die niet aanwezig of niet compleet is, moeten er
dingen aan de printer zelf worden gevraagd. Voor dat doel
heb ik een apart programma ontwikkeld, dat de belangrijk¬
ste functies van zo’n printer opvraagt. Om bijvoorbeeld de
response op LPRINTCHR$(X) te testen, laat ik deze voor X
tussen 32 en 127 uitprinten tussen twee kleine letters ”o”.
De A geeft dan oAo en daaraan is te zien hoe zo’n letters
zich tussen andere letters in gedraagt. Bij de A is dat na¬
tuurlijk niet zo interessant, maar bij het trema of de accen¬
ten wel. Bij dat opvragen moet de P2000 eerst op transpa¬
rant worden gezet, anders zitten de vele interne vertaalta-
bellen er nog tussen. Bovendien print MINITEXT van het
scherm af en daar staat lang niet altijd hetzelfde als in het
videogeheugen. Aan de hand van zo’n print-out kan dan
een vertaaltabel worden samengesteld. Ik doe dat op het
schema dat in figuur 1 is weergegeven.
Behalve lettertekens begrijpt een printer ook besturingste-
kens en die moeten vrijwel altijd uit het handboek komen.
Ook die moeten aan de printer zelf worden getest, omdat
papier geduldig is en omdat de omschrijving vaak onvolle¬
dig is. Ook de stuurcodes moeten worden vertaald, maar
vaak is een enkele ASCII-code daartoe niet voldoende.
Daarom gebruik ik een meervoudige vertaaltabel, die be¬
gint met vier lengtes en die daaronder uit vier delen be¬
staat.
Het eerste deel is een gewone vertaaltabel. Het tweede
daaronder vertaalt het teken, maar laat het bovendien voor¬
afgaan door CHR$(27). Het derde deel laat het vertaalde
teken volgen door CHR$(8) en het vierde deel doet zowel
het een als het ander.
Natuurlijk moeten alle te installeren commando’s ook er¬
gens op het scherm worden gepresenteerd. Er moet dan
ook meestal een nieuwe lay-out worden gemaakt voor de
rechterhelft van de ZOEK-pagina, waar het vooral bij
krachtige printers behoorlijk vol kan worden. Ook daarvoor
heb ik een apart formulier in gebruik, dat een overzicht
bevat van alle voorkomende tekens en commando’s met
de bijbehorende lengtes, symbolen en afkortingen. Om
programma en printer te kunnen testen is een nieuw uni¬
verseel testbestand ontwikkeld, waarin alle bijzondere te¬
kens en stuurcodes zijn opgenomen en waar alle bekende
staaltjes van printerdressuur aan bod komen. Met behulp
hiervan kan de reactie van de printer worden bekeken en
het resultaat kan dan weer voor verbetering en/of aanvul¬
ling worden gebruikt.
Procedure
Om al deze redenen is het niet goed mogelijk om software
voor een printer te schrijven, als die niet af en toe kan
woren getest, dat wil zeggen dat het voor de programmeur
noodzakelijk is om tijdelijk zo’n printer ter beschikking te
hebben. Een goede procedure om dat te bereiken is, in
Figuur 2: testbestand MINITEXT met de JUKI-6100
29
L
= Letterwiel M = Matrix
S
= Serieel
nr
= verwijzing — = Standaard
+
= Speciaal
1
= J. Gi el es 2 = K-
Rober5
3
= P.
Jochems
Nr
Naam
Type
Aansl.
Zie
1
ALL AS-30Ö
L
S
19
2
AVT
M
S
19
3
BRÜTHER CE-50
L
s
4
4
BROTHER CE-60
L
s
4
5
BROTHER EP—44
M
s
4
6
BROTHER HR-5
M
s
19
7
CENTRONICS JP-BO
M
p
4
8
COPAL SC-1200
M
s
19
9
EPSON MX-BO
M
s
18
.10
EPSON FX—80/100
M
s
19
11
EPSON LX-80
M
s
19
12
HERMES Toptr.15/S
L
s
4
13
HERMES Toptr.15/S
L
s
4
14
JUKI 2200
L
s
4
15
JIJKI 6000
L
s
4
16
JUKI 6100
L
s
4
17
OKI Microline 80
M
s
4
18
PHILIPS P2123
M
s
4
19
PHILIPS P2908/9
M
s
4
20
PHILIPS VW0020 MSX
M
p
4
21
PHILIPS VW0Ü30 MSX
M
p
4
22
QUME Sprint M3
L
p
4
23
SILVER REED Exp500
L
s
4
24
STAR DP-510
M
s
19
25
STAR Gemini 10X/15X
M
s
19
26
STAR Delta 10X
M
s
19
27
STAR SG-10
M
s
19
28
TREND JP-BO
M
s
19
29
TRIUMPH Gabr.9009
L
s
30
30
TRIUMPH SE -3 10
L
s
4
P = Parallel
I /11 = deel Printerkeuze
4=0. Rikkert de Koe
Bestand
Deel
11
11
II
I
I
11
11
11
I
I
I
I
11
1
II
Auteur
II
Figuur 3: overzicht van printers waarvoor de MINITEXT-aanpas-
sing gemaakt is of wordt
samenwerking met de eigenaar van zo’n printer aan de
importeur of de dealer daarvan te verzoeken, voor dit doel
gedurende enige tijd een printer (aan de PTC) beschikbaar
te stellen. De dealers zijn in het algemeen graag bereid aan
deze procedure deel te nemen, aangezien ook zij belang
hebben bij goed werkende en op hun machines toegesne¬
den software.
Door verschillende importeurs en dealers zijn in de afgelo¬
pen maanden printers ter beschikking gesteld, waardoor
het programmeerwerk direct kon worden getest. Langs
deze weg zijn inmiddels programma’s ontwikkeld voor een
aantal gangbare printers, waarbij er naar gestreefd is om
zoveel mogelijk SPC-programma’s te maken, dat wil zeg¬
gen dat alle bijzondere functies en alle bijzondere tekens
waarover de printer beschikt kunnen worden aangestuurd,
dat alle tekens op de plaats staan die overeenkomt met het
toetsenbord van de P2000 en dat er behalve regelcom-
mando’s ($) ook lettercommando’s in de tekst kunnen
worden opgenomen.
Een voorbeeld hiervan is het testbestand voor de JUKI-
6100, dat in figuur 2 is weergegeven. Dit testbestand is het
resultaat van een goede samenwerking tussen de gebrui¬
ker (Dhr. Woonings, basisschool ”De Berkhaag” uit Her¬
wen), de importeur van de printer en de programmeur (in
dit geval de auteur van dit artikel. Red.).
Overzicht
Het programma Printerkeuze is niet meer in staat, om al
deze verschillende printers te herbergen, vooral niet omdat
het nog steeds in een 16K machine moet kunnen draaien.
Het is inmiddels gesplitst in een deel I en een deel II.
In totaal zijn er nu in deze twee programma’s voorzienin¬
gen aanwezig óf op komst voor 30 printers, waarvan 17
originele en 13 verwijzingen daarnaar. Figuur 3 geeft u een
alfabetisch overzicht van alle printers waarvoor aanpassin¬
gen gemaakt zijn of waaraan nog gewerkt wordt.
De nummers 3, 4, 15 en 21 zijn op het moment van schrij¬
ven nog niet klaar. Het is nog de vraag of al deze program¬
ma’s in de toekomst ook via Viditel zullen worden ver¬
spreid. De dealers geven er de voorkeur aan, om de be¬
treffende programma’s direct op cassette bij hun printers
te kunnen aanbieden.
Samenvatting
Samenvattend bestaat het aanpassen van MINITEXT voor
een printer uit de volgende stappen:
1. Printer aan de praat zien te krijgen via scharrelen
met interface, verbindingskabel en dipswitches.
2. Uitzoeken en controleren van de response van de
printer op alle ASCII-codes, ook die onder de 32 en
boven de 128
3. Uitzoeken en controleren van alle overige stuurco-
des en code-series met de response daarop, de gel¬
digheidsduur en eventuele ophefcommando’s.
4. Selectie van te ondersteunen tekens, lettercomman¬
do’s en regelcommando’s.
5. Maken van machinetaal printroutine met alle beno¬
digde code-sequences en het installeren en aanroe¬
pen van deze routine in BASIC.
6. Opstellen complete printroutine met alle bijzondere
functies.
7. Opstellen van meervoudige printer-vertaaltabel en
installering daarvan in BASIC.
8. Opstellen van printer INIT- en EXIT-routines met
voorzieningen voor linker- en extra marge.
9. Oproepbaar maken van de gekozen speciale tekens
en lettercommando’s.
10. Installering van de gekozen regelcommando’s.
11. Schermlay-out maken voor de ZOEK-pagina.
12. Laten uitprinten van het testbestand.
13. Indien nodig installeren van de routine ”Geen geen
printer”.
14. Foutzoeken en corrigeren.
15. Gebruikersproef, controle door klant.
16. Opnemen in het programma "Printerkeuze”.
'
P2000T-16K + 8 cassettes met 40
programma’s, "Gebruiksaanwijzing’,
"BASIC Probeerboek” + "BASIC N
tities”. Vraagprijs f.800, =
H. Elverding. Tel.:(02154) 15872, na
18.00 uur.
Leden van de vereniging PTC
kunnen gratis annonces plaat¬
sen in deze rubriek. Spelregels:
• wees kort en zakelijk
• vermeld zo mogelijk de prijs
• vermeld bij voorkeur een tele¬
foonnummer en de tijden
waarop u kunt worden gebeld
• vermeld anders uw adres
• geef uw annonce uitsluitend
op aan Bureau PTC, Postbus
67, 5600 AB Eindhoven en ver¬
meld bij de opgave uw lid-
nummer
De redactie heeft het recht in¬
zendingen te weigeren die niet
in het belang zijn van de leden
van de PTC of die duidelijk com¬
merciële oogmerken hebben.
Aangeboden
P2000T-16K (IV 2 jaar oud) + 6 cas¬
settes + BASIC probeerboek. Prijs
f.575, =.
A. Visscher. Tel.:(050) 717762.
Aangeboden een practisch nooit ge¬
bruikte P2000T met BASIC- en tekst-
verwerkingsmodule (P2301-2), com¬
pleet met 7 cassettes en een spelle-
tjescassette en documentatie. Tevens
met bijpassende Philips-monitor. Dit
alles nog geen jaar oud. Prijs com¬
pleet f.1400, = .
Tevens te koop een eersteklas printer
met geheugen annex schrijfmachine
met margrietschijf en verbindings-
snoertje, met garantie. Nog geen drie
maanden oud. Prijs met documentatie
f.1600, =, gratis pak printpapier.
Leon Cornelisse, Berg en Dal.
Tel.:(08895) 2176, na 19.00 uur.
Te koop: 300/300 Baud full-duplex
Modular Technology modem. Ge¬
schikt voor het FIDO-net en commu¬
nicatie. Prijs f.300, = .
J. Baars, Hordijk 119, 3079 DE Rotter¬
dam. Tel.:(010) 822409.
Philips MSX Data Recorder D
6600/60p met netvoeding en 5 data-
cassettes CP 15. Van f.269,25 voor
f. 175, =. Alles z.g.a.n. en in originele
verpakking.
W. Davids, De Grote Pekken 76,
3901 JD Veenendaal.
Tel.: (08385) 14895.
P2000/38 + Fam geh + 6 progr cass
+ 12 lege cass + probeerboek +
basic notities + 2 progr boeken +
nieuwsbr. Tesamen voor f.900, =, 14
mnd oud.
J. Lentjes. Tel.:(080) 449855, na 18.00
uur.
14 Gebruikte P2000-cassettes a f.7, =
per stuk. Bij afname van 6 stuks doos¬
je kado.
F. v. Vugt. Tel.:(04105) 4145.
12 Minicassettes met programma’s
voor de P2000T.
P. Oosterman, Molenaarsbreed 23,
Drachten.
P2000 (32K RAM) + 9 cassettes +
BASIC-probeerboek. Z.g.a.n. f.550, =.
D.M.C. Valcq. Tel.:(043) 432846, na
18.00 uur.
P2000T (32 kB) + familiegeheugen 1
en 4 -I- tekstverwerker + boeken +
cassettes. Vraagprijs f.500, =.
A.J. Kramer. Tel.:(05163) 629, tussen
17.00 uur en 17.30 uur.
Philips VG8020 MSX homecomputer
-I- Philips D6450 datarecorder +
MSX Toshiba 4 kleuren plotterprinter
(de kleuren zijn zwart, blauw, rood en
groen). Nieuwwaarde f.2800, = alles
compleet. Aankoopdatum 11 januari
1986. Alles compleet nu voor
f.2000, =.
A. Bosma. Tel.:(03438) 13680.
P2000 Org 16K geheugenuitbreiding
(nieuw), met inbouwbeschrijving.
F.80, =.
M. Maas. Tel.:(01623) 16063
P2000T/38-16K, halfjaar oud + in-
steekmodule BASIC NL + P2000T
gebruiksaanwijzing + 12 minicasset¬
tes met programma’s. Prijs f.700, =.
F. Borghans. Tel.:(045) 711606, na
17.00 uur.
P2000T/38, vrij geheugen: 16 Kb, incl
5 cass., BASIC-probeerboek en doe.,
15 maanden oud. Z.g.a.n. Vraagprijs
f.425, =.
P. Hermans, Oude Schans 9, 5953 BA
Reuver. Tel.:(04704) 1676, na 18.00
uur.
Aanvulling
Niet meer leverbaar
De volgende MSX-programma’s zijn
helaas niet meer leverbaar:
Norseman, bestelnr. VG 8301.
Zaxxon, bestelnr. VG 8303.
Buck Rogers, bestelnr. VG 8304.
Congo Bongo, bestelnr. VG 8305.
Tekenpakket, bestelnr. VG 8310.
Cursus Engels deel I, bestelnr.
VG 8312.
Cursus Engels deel II, bestelnr.
VG 8313.
Introductie MSX-BASIC deel I, be¬
stelnr. VG 8316.
Introductie MSX-BASIC deel II, be¬
stelnr. VG 8317.
UCSD Pascal, bestelnr. VG 8505.
P2000 adresboekje
Het adresboekje voor de P2000,
waarop veel leden met smart wach¬
ten, is helaas nog steeds niet verkrijg¬
baar. Een eerste (proef)versie wordt
op dit moment gecorrigeerd. Mogelijk
kunnen we in de volgende PTC PRINT
meedelen dat het adresboekje nu in¬
derdaad te bestellen is.
MSX-tip
Vlak voor het ter perse
gaan van dit nummer kreeg
de redactie een verzoek
van het LOGO Centrum Ede
om de volgende, net ver¬
schenen publicaties onder
de aandacht van de leden
te brengen:
"LOGOlogie: puzzelen met
de computer". Voor ieder¬
een digraag puzzelt maar
nog niet dacht dat dat mo-
geli.jk zou zijn op de com¬
puter .
"LOGO-LOGICA", het LOGO
Doe Boek voor alle LOGO's.
"logoLOGIE: computerweten¬
schap in LOGOstijl". Eerst
Nederlandse verhandeling
over geheel Nederlandsta¬
lig programmeren met
MSX-LOGO.
Voor alle inlichtingen kun
u terecht bij het LOGO
Centrum Ede, tel.: (08380)
2 1306
31
ONERROR-
f^fYTtS
Een rubriek vol
schaamrood
MSX nieuwsbrief
Menigeen zal met vreugde de eerste
MSX nieuwsbrief hebben begroet. Er
kwamen nogal wat vragen en opmer¬
kingen over het tweezijdig bedrukte
papier met aan de ene kant de P2000
nieuwsbrief en aan de andere kant de
MSX nieuwsbrief. Maar er lag niets
door elkaar, er was niets onderstebo¬
ven afgedrukt, de redactie wil dit sys¬
teem een tijdje proberen, omdat het
uitgeven van twee aparte nieuwsbrie¬
ven én de administratie rond de toe¬
zending (wie moet welke nieuwsbrief
ontvangen) te veel kosten met zich
meebrengt. De fout zat dus niet in het
"ondersteboven en door elkaar”.
Er is echter een klein foutje geslopen
in de hoofdstukaanduiding in de MSX
nieuwsbrief. Bovenaan Nr.12/feb.1986
staat: 15. DEELPROGRAMMA’S. Het
zal u misschien al zijn opgevallen dat
de inhoud bij hoofdstuk 16 hoort. De
juiste aanduiding moet zijn: 16. BA-
SIC-TIPS.
”Screendump” voor MSX (MSX
nieuwsbrief nr.5, hoofdstuk 15.5.6)
Sommige fouten zijn hardnekkig. Zo¬
als de fout in regel 20 van het pro¬
gramma "Screendump”. Terwijl in PTC
PRINT van februari de fout in datzelf¬
de programma (dat al een keer gepu¬
bliceerd was in het decembernum¬
mer) verbeterd werd, werd tegelijker¬
tijd in de meegestuurde MSX nieuws¬
brief het programma met wéér diezelf¬
de fout gepubliceerd. Dus nogmaals,
regel 20
20 CLEAR 50,&HF1F7
is verkeerd en moet zijn:
20 CLEAR 50,&HF17F
Onze excuses voor deze slordigheid!
Het Viditel programma (PTC PRINT
nr.1, februari 1986)
Een systematische fout ontsiert dit ar¬
tikel. Er wordt gesproken over Cobi-
doo. Uiteraard moet dit zijn Cobidoc
(de Commissie voor Bibliografie en
Documentatie). Helaas staat het ver¬
keerde Viditel beeldnummer vermeld.
Dit nummer is 223 en niet 23.
De auteur van het artikel verzocht ons
overigens nog het volgende mee te
delen. In de listing om Vidibus berich¬
ten voor te programmeren (blz. 13 van
PTC PRINT nr. 1, februari 1986) kan
op regel 5050
PRINTCHR$(4)
CHR$(20)CHR$(1)
USR(O)
beter vervangen worden door
A = USR(0) om een lelijke 0 op het
scherm kwijt te raken.
Besturen met de computer (PTC
PRINT nr.1, februari 1986)
De 2 programmaregels bovenaan
bladzijde 11 moeten zijn:
60 LPRINT"
80 LPRINTCHR$(13);
In het programma onderaan bladzijde
11 zit eveneens een fout. Regel 60
moet zijn:
60 F0RR=1T04:PRINT
CHR$(4)CHR$(R)
CHR$ ( 33 )
NEXT
De blokjes staan voor vijf karakters
met ASCN-waarde 127.
Ongeremd REMmen (PTC PRINT
nr.1, februari 1986)
In "Vragen staat vrij” (bladzijde 4)
wordt de REM-instructie behandeld.
Althans, dat was de bedoeling. Helaas
is er iets mis gegaan in de zetcompu-
ter waardoor twee stukken tekst door
elkaar zijn geraakt. Vandaar dat de
tweede helft van het antwoord niet
aansluit bij de eerste helft. Het goede
en volledige antwoord houdt u van
ons tegoed.
Wortels trekken (MSX Nieuwsbrief
februari 1986, rubriek 16.2)
Enkele lezers hebben ons erop gewe¬
zen dat de in deze rubriek beschre¬
ven methode om hogeremachtswor-
tels te berekenen wel erg omslachtig
is. Dat is juist. U kunt elke willekeurige
wortel uit elk willekeurig getal bereke¬
nen met: W = X Tl/N. Met één in¬
structie dus. Deze instructie gebrui¬
ken we in de regels 130 en 140 om de
voorlopige wortel uit te rekenen. In de
meeste gevallen is die waarde nauw¬
keurig genoeg. Jammer dat we ver¬
zuimd hebben uitdrukkelijk te zeggen
dat het berekenen van hogeremachts-
wortels niet altijd op deze omslachtige
manier hoeft te gebeuren, maar alleen
als u een zo hoog mogelijke nauwkeu¬
righeid verlangt.
Omdat MSX met 14 cijfers rekent,
geeft het programma uit de Nieuws¬
brief alleen een iets nauwkeuriger
waarde dan de instructie W = X f 1/N
Bij computers die met meer cijfers
kunnen rekenen is de winst aan nauw¬
keurigheid groter.
OPBERG-TIP
Een handige manier om uw floppy
discs op te bergen en te vervoeren is
de volgende:
Bij iedere goed gesorteerde kantoor¬
boekhandel kunt u stevige (doorzich¬
tige) plastic mappen kopen die in een
ringband passen. U knipt zo’n map af
ter grootte van uw floppy, stopt uw
diskette erin en bergt het geheel op in
een ringband. In één ringband kunt u
op deze manier heel wat floppy’s
kwijt. Als u het geheel voorziet van
duidelijke etiketten en eventueel
onderverdeeld met behulp van tabbla¬
den, heeft u een handig opberg¬
systeem, waarin uw floppy’s veilig,
stofvrij en overzichtelijk bewaard kun¬
nen worden.
Berichten
Volgende keer beter
Zoals u, als oplettende lezer, al opge¬
vallen zal zijn, ontbreken in dit num¬
mer van PTC PRINT twee "vaste” arti¬
kelen: "Aan de lijn” en ”Het liefheb¬
bers logboek”. De auteurs besteden,
net als veel andere medewerkers van
uw lijfblad, een deel van hun spaarza¬
me vrije tijd aan het schrijven van hun
artikelen en het werk dat daaraan
voorafgaat. Maar ook voor hen geldt
de "deadline”, de uiterste datum,'
waarop alle kopij bij de redactie moet
zijn om nog verwerkt te kunnen wor¬
den. Door allerlei omstandigheden is
het hen beiden deze keer niet gelukt
hun tekst op tijd klaar te hebben. We
hopen het gemis van deze artikelen in
het volgende nummer weer goed te
maken.
MSX-programma’s op de
MSX-2
MSX of niet, een aantal MSX-pro¬
gramma’s werken wél op de MSX-1
computers maar helaas niet op de
MSX-2 zoals de Philips VG8230 en
VG8235. Het gaat om Zaxxon, Norse-
man en de cursus Engels. Nu is het zo
dat deze programma’s niet meer te le¬
veren zijn, maar als u reeds in het be-
zit bent van een van de programma’s
en u schaft een MSX-2 aan, houdt u
hier dan rekening mee.
MSX nieuwsbrief
Na het verschijnen'van de MSX
nieuwsbrief bij het vorige nummer van
PTC PRINT kwamen er nogal wat vra¬
gen binnen van leden die ook graag
de eerder verschenen MSX nieuws¬
brieven wilden ontvangen. Voor al die
enthousiaste computeraars hier een
geruststellende mededeling: u heeft
nog niets gemist. Er is tot nu toe pas
één MSX nieuwsbrief verschenen.
Met dit nummer van PTC PRINT ont¬
vangt u de tweede uitgave.
Viditel op MSX-2
De Viditelmodule VG 8180 geeft, in
combinatie met de MSX VG 8230, eni¬
ge problemen bij de opstartprocedu¬
re. De modules uit de eerste serie,
herkenbaar aan een grijs aansluit-
snoer, komen niet met het Viditel be¬
ginbeeld, maar starten op in BASIC.
Om deze module werkend te krijgen
moet tijdens het opstarten van de ma¬
chine de CTRL-toets ingedrukt ge¬
houden worden, vervolgens komt het
Viditel beginbeeld en zijn alle Viditel-
routines ter beschikking.
De modules uit de latere series, her¬
kenbaar aan een zwart snoer, starten
wel correct op, maar weigeren het /X
commando (terug naar BASIC). Start
men hier echter op met de CTRL-
toets ingedrukt, dan is ook deze func¬
tie weer aanwezig.
Programma’s
gevraagd en
aangeboden
Leden van de vereniging PTC
kunnen gratis annonces plaat¬
sen in deze rubriek. Spelregels:
• wees kort en zakelijk
• vermeld zo mogelijk de prijs
• vermeld bij voorkeur een tele¬
foonnummer en de tijden
waarop u kunt worden gebeld
• vermeld anders uw adres
• geef uw annonce uitsluitend
op aan Bureau PTC, Postbus
67, 5600 AB Eindhoven en ver¬
meld bij de opgave uw Mei¬
nummer
De redactie heeft het recht in¬
zendingen te weigeren die niet
in het belang zijn van de leden
van de PTC of die duidelijk com¬
merciële oogmerken hebben.
Gevraagd
Wie kan mij helpen aan de besturings-
software (op tape of in Eprom) voor
de ZERO S.C. Epromprogrammer.
Eventueel met sourcelistings. Kosten
worden uiteraard vergoed.
G.M. Manshanden, Den Helder.
Tel.:(02230) 18913, na 18.00 uur.
Software voor de MSX VG8010.
Remo Franssen, Krommedijk 144,
3312 LG Dordrecht. Tel.:(078) 149493.
Ik zoek een programma voor de op¬
slag en verwerking van gegevens
m.b.t. de duivensport, geschikt voor
de P2000T 16K.
P. Cuijpers, Schout Roffaertstraat 8,
6048 VT Roermond.
Tel.:(04750) 24689.
gepland en wel op:
Zaterdag 26 april, van 13.00 uur tot
17.00 uur.
Maandag 26 mei, van 19.00 uur tot
22.00 uur.
Zaterdag 21 juni, van 13.00 uur tot
17.00 uur.
Alle bijeenkomsten worden gehouden
in de Raesfelt MAVO, Schoppenstede
10, Delden.
Afdeling Arnhem
De PTC heeft inmiddels weer een
nieuwe afdeling: de afdeling Arnhem.
Ook binnen deze afdeling zullen re¬
gelmatig bijeenkomsten georgani¬
seerd worden. Voorlopig is hiervoor
iedere eerste maandag van de maand
gereserveerd, met uitzondering van
juli en augustus.
De bijeenkomsten vinden plaats in de
kantine van het Philips Technisch Ser¬
vice Centrum, Kermisland 10, Arn¬
hem. Aanvang: 20.00 uur.
Voor de komende bijeenkomsten
staat het volgende op het programma:
5 mei: onder andere een inleidende
serie over machinetaal
2 juni: machinetaal voor beginners en
computerbesturing
Aangeboden
MSX-programma ’Tlight Deck”, in ori¬
ginele verpakking, géén copie. Met
gebruiksaanwijzing. Prijs f.35, =.
A. v.d. Eisen, Eindhoven.
Tel.:(040) 424467.
Afdeling Zwolle
De data van de eerstvolgende bijeen¬
komsten van de afdeling Zwolle zijn:
22 april, 20 mei en 24 juni.
De bijeenkomsten worden gehouden
in de Christelijke MTS Zwolle, Blalo-
weg 1, Zwolle. Aanvang 19.30 uur. De
kosten zijn f.1, = voor koffie en zaal-
huur.
fdelingen
Afdeling Den Haag
De afdeling Den Haag heeft de afde-
lingsbijeenkomsten gepland op iedere
tweede woensdag van de maand, be¬
halve in de maanden juli en augustus.
De bijeenkomsten worden gehouden
in het verenigingsgebouw van HKV,
Steenwijklaan 12, Den Haag (achter
de sporthal) van 19.30 uur tot 22.30
uur.
J. Zoeteweij, secretaris.
Afdeling Twente
De afdeling Twente heeft eveneens
een aantal afdelingsbijeenkomsten
De volgende demonstraties staan op
het programma:
Voor beginners:
1. Omgaan met CHR$(0) t/m
CHR$(31) door John Compter
2. Werken met de cassetterecorder
door Cor Quene
3. Poken naar het scherm door John
Compter
4. Werken met het BASIC Probeer-
boek door Cor Quene
5. Basicode voor beginners door
Gert Pompert
Voor gevorderden:
1. Basicode voor gevorderden
2. Miniware multifunctiekaart door
Ralf Boersma
3. Administratie op de P2000 door
Jan Visscher
Voor MSX-bezitters komt er een apar¬
te hoek. MSX-computers en proble¬
men s.v.p. meenemen.
We zoeken een lid, dat binnen het be¬
stuur de MSX-activiteiten wil coördi¬
neren.
Cor Quene
33
Afdeling Alkmaar e.o.
Zo, na de oprichtingsbijeenkomst
hebben we er twee avonden op zitten.
De eerste, op 27 januari 1986, was
volgens mij een succes. Een bezoe¬
kersaantal van ongeveer 60 is niet
slecht te noemen. De tafeltjes werden
bemand door onder andere Nico Stad
met tekst en uitleg betreffende de
"gereedschapskist” voor de P2000.
Een ander tafeltje door ondergete¬
kende met het "Familiegeheugen 4”.
Daarbij werd zo nu en dan afgeweken
naar de raadsels van het inwendige
van de P2000. Dan was er een tafeltje
met MSX. De winkel was alleen op pa¬
pier present. We zijn nog niet in de
gelegenheid (het geld ontbreekt ons
nog) om een voorraad op te bouwen.
Een aantal leden had eigen apparatuur
meegebracht (P2000 en MSX) en de¬
monstreerden naar hartelust.
De tweede avond was op 24 februari
1986. Een kleinere opkomst, zo’n 40
man en 1 vrouw, maar voor diegenen
die er waren wederom leerzaam en
gezellig. De opzet was gelijk aan die
van de vorige avond. Op deze avond
zijn een aantal enquette-formulieren
uitgedeeld, die nog niet allemaal terug
zijn. Op de komende bijeenkomsten
zullen we deze nogmaals uitreiken. Na
verwerking kunnen we dan eens zien,
waar nog wat te veranderen en te ver¬
beteren valt.
Het is de bedoeling de bijeenkomsten
op te splitsen in twee gedeelten: het
behandelen van een bepaald pro¬
bleem of een lezing én het praten met
en luisteren naar de andere leden.
Daarbij het verzoek om, als u in de
gelegenheid bent, uw eigen appara¬
tuur mee te nemen.
De data voor de volgende bijeenkom¬
sten zijn:
28 april, 23 mei en 6 juni. In de maand
juli houden we vakantie.
De bijeenkomsten worden gehouden
in het ontmoetingscentrum ”de Reke-
re”, Muiderwaard 396, Alkmaar. Aan¬
vang is 20.00 uur.
Op maandag 28 april willen we starten
met "BASIC zonder rekenen” in de
praktijk. Dit wordt een soort begelei-
dingscursus naast de artikelen in PTC
PRINT. Als u hieraan wilt deelnemen,
neemt u dan wel uw eigen PTC PRINT
mee?
Voor vrijdag 23 mei willen we iemand
uitnodigen, die ons wat kan vertellen
over de werking van de computer.
Op vrijdag 6 juni volgt dan weer "BA¬
SIC zonder rekenen” in de praktijk.
De winkel zal aanwezig zijn, hopelijk
met een aantal hardware en software
producten. Tot ziens!
Theo Henderson.
Afdeling Midden Brabant
De komende bijeenkomsten van de
afdeling Midden Brabant zijn gepland
op:
donderdag 24 april, donderdag 29 mei
en donderdag 26 juni.
Alle bijeenkomsten vinden plaats in
gemeenschapshuis "de Koe”, Am¬
bachtenlaan 1, Breda. De aanvang is
20.30 uur.
Afdeling
Groningen/Drenthe
De secretaris van de afdeling Gronin¬
gen/Drenthe, dhr. W. van Oostveen, is
verhuisd. Zijn nieuwe adres is:
A. Jacobsstraat 68
7844 PB Veenoord.
Afdeling
Leiden/Bollenstreek
De oprichtingsvergadering van de af¬
deling Leiden/Bollenstreek heeft in¬
middels plaatsgevonden. De komende
ledenavonden zijn vastgesteld op 15
mei en 12 juni. De bijeenkomsten vin¬
den plaats in de Rembrandt Scholen¬
gemeenschap, Noachstraat 2 te Lei¬
den. De aanvang is 20.00 uur.
Afdeling ’t Gooi
De afdeling ’t Gooi nodigt u uit voor
een aantal bijeenkomsten. Het is ge¬
lukt een aantal demonstraties te orga¬
niseren voor de komende bijeenkom¬
sten. De agenda ziet er als volgt uit:
23 april: tekstverwerking op de P2000.
Wouter van Hengel toont de laatste
versie van Minitext in combinatie met
een op de computer aangesloten
printer.
28 mei: Basicode. Velen van u hebben
het wel eens gehoord op de radio:
een oneindig irriterend geluid dat te¬
genwoordig elke donderdagavond
door de NOS wordt uitgezonden. Wie
zijn computer laadt met dit geluid kan
dat vertalen in nuttige informatie, zo¬
als onder andere de NOS Beeldkrant.
Op deze avond een complete uitleg
van het Basicode-vertaalprogramma.
De bijeekomsten van de afdeling ’t
Gooi worden gehouden in Scholenge¬
meenschap ”De Gemeenlanden”, Ge-
meenlandslaan 2 in Huizen. Aanvang
is 20.00 uur.
Behalve de demonstraties is er uitge¬
breid gelegenheid ervaringen uit te
wisselen met andere hobbyisten. Ook
voor PTC-artikelen kan men hier te¬
recht. Programma’s voor de P2000 en
de MSX zijn op voorraad, andere arti¬
kelen moeten worden besteld (tegen
contante betaling). De levertijd is on¬
geveer een maand.
Afdeling Rotterdam e.o.
Tijdens de oprichtingsbijeenkomst
van de afdeling Rotterdam e.o. is be¬
sloten maandelijks een bijeenkomst
te houden. De bedoeling van de bij¬
eenkomsten is om de leden de moge¬
lijkheid te bieden zo dicht mogelijk bij
huis ervaringen uit te wisselen, advie¬
zen te krijgen, vondsten te kunnen la¬
ten zien en vooral beginnende com-
puteraars met onvermijdelijke aan-
vangsproblemen te helpen. Kortom:
echte gezellige ”doe”-bijeenkomsten,
waar leden voor leden leuke dingen
kunnen doen. Wanneer de afdeling als
organisatie meer gestalte heeft gekre¬
gen en hieraan een duidelijke behoef¬
te bestaat, kunnen lezingen, cursus¬
sen, demonstraties, etc. worden geor¬
ganiseerd.
De data van de eerstvolgende bijeen¬
komsten zijn:
22 april, 27 mei en 24 juni. De aanvang
is 19.30 uur.
De bijeenkomsten worden gehouden
in 1 of meer lokalen van de Grafische
School te Rotterdam, Heer Bokelweg
255. Telefoon (010) 660255. De school
bevindt zich vlak bij het Hofplein, dus
voor iedereen gemakkelijk te berei¬
ken.
Om de avonden te doen slagen ver¬
zoeken we zoveel mogelijk leden hun
apparatuur, cassettebandjes, pro-
grammaschijven, uitvindingen, etc.
mee te brengen, zodat een optimale
uitwisseling van ervaringen en het ver¬
lenen van hulp mogelijk wordt. Rol- en
verdeelsnoeren vooral niet vergeten!
Leden voor wie het meenemen van ei¬
gen materiaal een onoverkomelijk
probleem is, kunnen gebruik maken
van één van de P2000-machines van
de school.
De materiële voorzieningen zijn bijna
optimaal te noemen maar laten we
vooral niet vergeten:
Het zijn de leden die de bijeenkom¬
sten moeten "maken”!!!
We rekenen op een flinke opkomst.
G. Dijkstra
Adverteer-
index
Job van Broekhuijze Computersyste¬
men, Ridderkerk
Leidse onderwijsinstellingen B.V., Lei¬
derdorp
Philips Nederland, Eindhoven
Uitgeverij Stark, Texel
p
<
«
Pi
<
©
pi
<
©
Pi
<
©
Pi
<
O
Pi
<
o
P
<
©
P
<
Ö
P
<
>
P
<J
>
p
<
>
P
<
>
>
P
CD
©
Pi
0
W
3
CD
©
P
0
H
p
0
©
P
0
©
P
0
©
P
0
O
P
0
©
P
0
©
p
0
3
P
0
©
3
3
te
1-3
3
tl
©
ft
H
ft
te
Z
3
te
M
3
te
z
3
t{
Z
3
te
©
3
te
z
3
tj
©
3
t{
©
3
te
©
P
P
cQ
P
32
3
P
cQ
W
P
33
O
P
33
Z
P
33
P
33
P
33
©
P
33
©
P
33
©
P
32
►3
P
32
3:
0
•
o
O
•
©
•
©
•
►3
«
©
•
w
•
©
•
n
•
O
•
M
•
>
P
..
••
o
••
M
25
••
••
©
M
••
o
••
•«
©
•»
••
>
n
••
o
• •
CO
25
«•
••
s
»•
••
O
••
••
©
>
H-
o
U
>
<
©
>
©
©
••
o
©
©
3
kj
o
©
H
<
CD
3!
©
©
\
KJ
©
O
Z
0
O
>
M
\
0
©
<
o
o
1-5
0
>
©
©
0
©
>
KJ
00
O
32
co
CD
o
..
pi
P
0
0
0
Z
en
0
0
O
P
•
O
Z
Q
©
3
0
M
©
©
M
te
3
p
z
H
p
Z
CO
33
3
0
0
3
cf
3
X
P
0
z
O
3
er
x
3
•*
©
©
0
te
©
X
3
H-
•
••
X
3
O
en
3
•
3
p
CD
o
ï
CD
3
P
P
o
p
ca
0
0
O
P
O
0
0
0
Cl
©
0
X
'r—
0
X
••
P
-
3
0
'*
©5
CD
P
P
0
Ui
P
©
©3
0
3
Cl
p
<
©
z
3
3
•
©
0
•
©
•
*0
0
•
t}
3
CD
CD
P
3
ft
3
O
te
£
•
0
3
P
•
H
3
£
H-
•
••
0
3
t3
3
P
£
©
tj
>
0
• •
O
P
P
P
<
3
Pi
ca
P
CD
0
x
3
z
S
H-
33
ÏS1
0
•
0
3
0
•
H-
p
3
0
P
P
ca
pi
3
Pi
P?
o
©
P
©
©
©
te
0
0
<
<n
0
3
0
<
P
te
0
3
te
<
P
X
H-
©
3
•s
CD
p
Pi
ft
3
0
H
>
P
O
o
CD
t$
P
P
M
0
©
3
0
p
•
CD
X
te
P
O
©
>
3
3
•
3
Pi
3
Pi
CD
rt
3
s
P
32
3“
©
©
3
3
Z
Pi
r-i 33
3
3
3
3
3
0
H-
P
32
P
KJ
0
(D
X
3
ft
3
©
co
3
0
3
0
CO
0
••
0
P
CO
0
P
0
•
P
3>
3
KJ
P
CD
©
0
02
p
CD
CD
Pi
CD
—i
te
©
—k
te
©
©
3
©
P
33
£
P
P
©
3
P
3
X
UI
te
O
3
©s
pi
3
3
3
©
—i
•
Pi
te
O
3
s;
£
3
0
0
0
3
3
0
•
H-
CD
0
»
0
t$
0
3
p
CD
32
y->y
CD
3
o
3
o
o
P
P
0
3
•
0
3
H*
3
CD
P
te
3
3
P
3
3
P
te
o
3
O
CD
_k
0
••
CD
-
3
i-3
3
P
3
P
<
0
_k
0
i_J-
0
P
<
►0
CD
0
P
0
er
0
CD
P
3*
P
3>
3
P
Pi
0
CD
©
3
•
•
3
NJ
3
•
©
3
3
0
P
P
P
H-
t{
3
0
NJ
Pi
•
»
Pi
Cl
y»
©
0
P
Pi
te
o
CD
s:
te
•
P
0
t-i
P
3
3
3
3
3
. —
«.
©3
U)
CD
•
0
t*
•
P
KJ
3
ta
0
Pi
o
P
0
•
32
0
•
3
P
0
nj
ta
O
*1
<
NJ
CD
*:
es
35
-
3
0
Ui
P
O
©
0
0
t3
3
•*
<
en
3
3
o
33
3
CD
Pi
•
©
3
P
3
3
33
0
©
h- J
X
0
o
<J
0
t3
3
•
-
•
3
O
P
3
3
Pi
£
C_|.
O
<
M
2
•
<
3
©
•
0
H
<
0
O
P
3
0
i_i.
P
o
P
CD
•
»
ca
•
t_J-
P
CD
en
P
P
©
••
0
<
••
•
•
P
3
©
3
-
p
3
0
t-3
©
o
N
.*
w
O
3
tj
CO
3
3
0
-—
0
P
©
• 0
3
3
co
•
3
0
P
CD
O
y-y
0
3
Pi
©
Pi
3
O
3
3
P
p
O
•-3
y
te
en
P
O
••
H-
©
P
e_i.
3
P
CD
O
3
P
0
te
Pi
3
t{
£*
•
P
o
<1
0
O
P
3
o
0
p
■—'
0
•
0
•
3
k;
<
0
<
©
>
X
3
P
_k
0
0
P
O
Pi ca
3
O
H
—k
0
3
3
o
—'
X
• •
0
y^y
CD
_k
p
p
0
3
P
•
•
0
ui
<
0
■ —
H3
0
•
3
—'
•
-J
<*•
3
0
NJ
KJ
0
3
•
CD
Ui
3
*
3
(— 1
ft
_A
CD
en
3
0
3
0
0
..
—k
3
NO
P
3
o
O
t{
o
X
P
KJ
0
P
Pi
*3
UI
P
P
3
3
en
3
3
t$
©
3)
P
©
'O
P
P
w
•
0
KJ
0
P
w
Pi
0
0
<
0
•
P
CO
P
•
0
co
•
P
©
O
■—
P
0
3
3
O
=
NO
3
Pi
0
Pi
3
CD
P
CO
3
3
en
• •
P
Pb
KJ
•P.
3
te
33
P
•
>C^
o
-
CO
CD
3
en
0
X
3
•
o
Pi
•
Pi
©
<n
.— y
3
0
en
—k
— k
P
3
en
en
3
Pi
kj
3
►t
0
P
••
O
en
O
Pi
3)
CO
<1
H-
•
■f-
NO
3
s
0
CD
en
Pi
Pi
te
0
3
z
-— .
0
KJ
en
CD
o
*—"y
W
— 1
—*
•
3
3
p
_i
P>
0
X
O
•
©
ND
©
•
3)
©
•
w
en
NJ
3
33
>
NO
H-
—k
-
3
er,
3
0
.3
w
0
O
P
—i
—»
0
—k
O
P
•
3
•
P
en
■y
•
Pi
Pi
t{
3>
•
3
•
3
en
3)
KJ
•
•
3
UI
CD
•
0
— 1
0
0
£
NO
©
O
3
•>—'
«
3
O
P
O
3
te
-O
3
y—y
3
0
O
0
O
CD
©
3
K>
O
0
O
Pi
33
'—'
H»
2
en
O
P
—k
3
P
p
•
32
0
s
3
v
—i
h-*
en
3
o
*
<
p
•
tl
co
**
%
•
NJ
3
'—
•
•
>
-— 1
0
te
CO
Pi
en
32
-—
O
•
■S
•
0
P
o
Pi
■«.
-0
•
•
3
32
o
•
•
•
3
"J
P
<
N
P
<
N
p
<
N
p
<
21
p
<;
P
<5
ta
p
<
►a
P
<
©
P
<
o
P
<
z
P
<3
3
p
<
3
P
<
©
p
<
©
P
0
s;
P
0
G
pi
0
©
p
0
M
p
0
M
p
0
s:
p
0
H
P
0
O
P
0
o
P
0
H
p
0
H
p
P
H
P
0
M
p
0
©
3
te
o
3
te
H
3
te
©
3
te
W
3
te
©
3
te
©
3
te
©
3
te
ta
3
te
©
3
te
G
3
te
O
3
te
O
3
t{
H
3
te
z
P
32
©
P
32
ö
p
32
©
P
32
t3
p
32
©
P
32
z
P
32
©
P
ua
ta
P
3)
ta
P
32
3
P
32
o
P
32
O
P
32
O
P
32
z
•
©
•
•
>
•
•
ta
•
►3
•
G
•
©
«
•
W
•
©
©
©
w
••
•»
©
••
••
©
••
••
z
••
••
©
••
••
••
••
••
M
*•
• •
©
©
o
••
cn
.*
••
z
«•
•i
z
».
z
..
«
3S
O
H
o
©
«•
O
o
©
w
..
©
NO
©
— 4
©
O
s
••
>
0
s:
©
s
0
— 4
©
••
NJ
©
o
>
©
z
KJ
©
z
KJ
cn
©
©
KJ
p
NJ
©
o
— 1
0
p
©
©
p
0
X
•
P
>
©
O
KJ
0
te
s
o
••
©
0
©
0
©
en
0
G
00
3
©
t$
♦
P
0
CD
G
>
X
te
P
X
<
•
3*
©
3
p
©
3
o
3
>
3
•
3
P
•
0
t_i-
te
3
©
Z
0
3
P
<
0
O
P
0
•
P
3
3
0
©
G
P
©
P
0
©
3
er
p
0
z
ïO
O
3
p
0
Q
t3
p
►o
p
>
©J
P
*0
0
p
•
©
•
>0
Z
©
na
0
>
0
te
©
nj
te
u
te
s
3
0
3
0
3
••
••
p
0
0
3
P
©
P
te
0
©
te
te
0
0
3>
3
t{
H-
©
te
3
z
H-
p
0
te
32
„
H-
i-3
0
3
P
3
O
0
3
0
p
3
H-
3
tl
p
p
o
Z
•
H-
3
>
p
0
ta
yy
3
3
p
0
P
©
3
er
*»
1
P
©
t$
te
<
O
te
0
P
p
32
p
p
p
X
O
P
3
z
p
O
p
3
p
3
©
*»
-*
0
0
3
3
•
•
p
P
p
0
P
0
3
0
3
3
0
o
•«
D
%
0
o
y.
3
3
0
*
•
•
te
0
3
0
P
3
0
0
<
32
y
3
X
•
0
•
C|
KJ
a
KJ
©
P
P
C|
5
3
3
0
•
KJ
KJ
©
£
X
—k
P
NO
3
•
©
NJ
©
O
P
t3
Ui
0
3
0
0
p
-
©
0
P
p
O
2
co.
-O
o
o
•
X
-J
0
2]
3J
3
C|
co-
O
CO
>
G
P
0
KJ
0
3
0
3
CD
p
0
t{
p
3
ta
•
©
te
3 J
p
©
0
te
•
P
•
3
3
0
©
•
3
p
P
O
h 0
er
X
0
3
£
te
3*
3
>
0
O
0
•
3
0
LJ-
p
t{
3
►a
3
0
3
3
0
P
3
O
0
0
•
•
3
0
©
0
0
Ui
0
3
0
0
P
o
0
0
X
0
0
0
0
©
0
H-
P
.
0
<5
H-
z
O
0
te
X
te
P
P
0
0
3
P
©
«
0
ta
p
p
0
p
•
H-
3*
P
H-
2
3
0
p
P
->
0
o
3
32
P
•
0
P
t{
3
P
O
»•
3
3
0
N
-
3
3
>
3
P
y.
P
H*
y
3
©
3
32
o
3
P
•
32
3
©
•
32
©
•
P
p
te
ta
P
P
0
O
NJ
32
.—,
0
KJ
en
3
0
P
t3
•
O
0
O
P
•
KJ
©
p
©
0
_k
0
3
KJ
3
O
0
O
_k
H-
P
-*
-o
•
te
©
0
t3
<
P‘
ta
«
©
•
P
•*
0
•
0
p
P
en
©
H*
•
3
©
P
0
>
-o
-
CO
p
0
p
0
0
P
»0
P
0
0
•
3
0
0
O
_k
0
te
ej-
—k
•
*»
•
P
3
p
P
3
0
3)
2
o
te
ta
0
..
©
.
i_j.
0
P
o
•y
--
CJ.
0
3
N
•—
co
••
•
0
•
3
3)
"S
—k
3
0
0
3
•
3
2
0
3
<
X
3
f|
_i
r ~l
■—'
••
P
3
••
P
0
—'
co
3
©
p
P
o
3
^a
3
■X
0
3
2C
0
3
P
p
H-
6
KJ
p
o
0
32
0
3
Cl
W
p
0
•
P
co
P
O
0
H-
3
.
0
©
P
P
3
p
CO
0
3
O
0
O
3
0
cn
•
X
3
o
3
p
>
yy-yy
P
©
te
nj
-^y
p
KJ
X
en
— k
3
3
JU
P
— 4
ta
UI
0
y
32
—
y — y
3
•
y
3
.
0
©
3
— 1
0
•
3
O
—-
en
P
0
3)
P
0
— 4
te
UI
— k
p
O
— k
P
•t
NO
3
ta
3
_Jk
-Jk
VD
•
0
P
en
P
0
en
P
o
3
NJ
3)
z
-o
— k
3
y
o
P
0
0
_k
32
NO
►a
•
©
3
KJ
en
3
3
— 4
3
— 4
— 4
•<
P
•
0
©
ta
•
3
O
•
O
P
3
•
•
o
0
CO
0
'O
— k
—'
P
0
—
P
O
•
0
KJ
©
32
—'
0
kU
O
©1
co
co
3
•
te
O
yy
p
o
te
0
en
O
-»
3
3>
O
p
Jiy
o
P
o
O
3
..
•
O
"»
te
— k
NJ
P J
co
P
v \
NJ
_k
•
NJ
•
y—
0
yy—y
N0
X
3
3
en
31
KJ
P
co
O
3
£>
3
en
©
..
cn
3
3
3
o
y.
3
P
y~y
•
CD
KJ
00
O
cn
3)
0
•
NJ
•
en
KJ
-~y
*
•
>
P
-yj
P
O
3
•
3J
*
-
©
*
P
en
-—
>.
en
O
■-—■
y_^
3
©
©
w
te
KJ
•
te
•
O
o
O
P
KJ
en
•
o
CO
•
O
<n
•
.
_ _ •
0
.
p
00
P
O
•
O
0
-
UI
co
OJ
0
co
_k
P
0
•w
P
3
en
•
en
.u
»
_k
P
3
3
C
3
•
»a
•
en
©
©
00
0
CO
*
•
p
H-
•
©
KJ
3
©
p
P
tl
32
•
3)
•
•
er
NO
3
0
—k
32
3
00
•
P
k3
tl
3)
P
*
O
32
KJ
•
•
35
ng
m
m
uo
m
m
uo
o
O
O
o
O
O
O
o
in
Lf3
O
O
uo
O
O
o
o
d
■H
o-
o-
O'
r-
1
l
1
r-
I
1
CN
1
1
'Cf
T—
LH
d
03
m
co
m
ro
CO
T-
UO
ro
1
P-
r-
1
1
1
1
uo
t
1
{
1
1
1
•*.
>
X
CO
co
co
co
or
m
o
00
ft
ft
CP
vr
CO
d-
C
co
O
00
d
d
d
d
03
r-
r-
d
UO
MO
MO
T-
03
03
03
r-
of
d 1
d
CO
co
ro
ro
CO
ro
ro
ro
03
CP
T3
CN
CN
o
o
in
co
CN
r-
ft
co
r—
CN
CO
T—
CN
d
ro
m
r-
T-
CN
t—
T—
co
T—
d
d
UO
MO
MO
MO
CO
'f
d
d
uo
uo
UO
uo
co
CN
m
co
r~
(Tl
CN
T-
3 -
CN
CN
CN
CN
’
T_
’
■m
•H
H
Cb
LD
o
O
o
O
O
o
m
uo
in
UO
o
m
o
UO
C
d
i
1
1
1
1
l
l
1
1
1
1
!
CP
00
03
CP
CN
1
r-
r-
CP
03
CO
UO
p-
*—
P'
1
1
1
1
I
i
1
i
i
1
1
1
I
1
1
1
f
X
cd
*.
w
w
*>
•w
**■
*
*
**
-
4,
v
w
ro
X
m
in
m
m
cn
uo
03
03
Of
ft
CO
d
CO
m
co
o
m
m
CN
03
03
co
MO
03
CP
03
03
CP
CP
in
03
03
03
03
03
03
03
03
03
CP
03
CP
03
03
X
ft
CN
<N
CN
00
n-
p-
p'
Oi
T~
CN
co
CN
<>0
ro
'X
r-
T—
CO
r~
T“
ro
r-
d
d
P'
03
03
03
ro
d*
'f
d
d
UO
UO
uo
uo
m
m
UO
03
03
ft
s
CN
m
co
p*
CP
CN
T_
CN
CN
CN
CN
t—
T
CQ
43
4J
43
43
43
43
43
43
4-1
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
•
!
.
•
•
Z
ft
Si
j
.
X
#
•
z
Q
ü
#
ft
.
.
ft
M
•
C
ft
X
ft
ft
E3
ü
Q
rH
•ft
u
X
X
X
X
d
ft
0
O
£
ft
ra
X
<
-ft
U
E3
ft
Cb
-H
X
ft
03
.
d
u
u
d
X
0
1
X
u
X
rH
X
d
X
ft
Cb
CQ
-m
<
Cb
X
CN
X
ft
d
.
03
o
X
X
0
o
g
.
r-j
X
O
I
X
ft
d
d
X
©
ft
ft
g
o
0
X
1
CN
X
CQ
X
1
1
CN
d
n
0
rH
d
ft
ft
ft
ft
o
ü
X
co
dJ
o
X
g
d
.
X
ü
ft-.
X
X
X
X
CN
O
03
z
1
i
1
z
2
1
0
g
1 —1
ft
d
•
ft
X
X
X
ft
ft
X
(X
s.
r—
ft
O
O
03
O
M
1
ft
ft
g
ft
d
X
0
V
.
ft
CQ
ft
X
ra
03
co
ft
(X
ft
o
o
X
CN
X
m
Q
z
z
Q
Q
z
ft
X
d3
X
g
.
X
«
ft
2
ft
ft
•rH
•H
X
co
ft
X
°
co
>
O
O
d
o
1 •
M
Z
H
H
•
*
ft
X
X
0
ft
ft
I 03
X
X
’—
X
-U'
d
d
! o
jj
X
d
ft
0
X
E3
o !
•r-i
O
O
O
ft
o
1 ft
o
H
Q
rft
ft
ft
X
ft ;
g
03
X
X
1 K
X
X
I
!
CQ
03
ra
X
!
ft
ft
-ft
0
0
o
CN
o
C
CN
co
1 0
•
Q
*
•
O
O
*
ft
CO !
ft
d
o
ft !
I d
ft
ft
X 1
X
2
ra
53
«3
ra
+
+
i
X
ft
! 0
>
Cb o
X
i ‘
>
d
S
I S
O
CX ft
ft
ft
Cb
Cb
rft
03
X
-H
ft
ft !
l o
ft
ft
ft
ft
—'
d
0
d
ra
!
! ^
CO
X
X
d
>
g
o
j •
—
>
! >
O
o
>
1
0
O
o !
1
1
0
C
ft
X
X
03
x 1
1
X
X
ft !
ft
o
03
o
d
X
X
1 X
co
co
ft
■ft
X
0
CN
ft
1
ft
1
O
r—
VD
X
53
Cb
03 |
MO
MO
Cb
-3
ft
ft
—
c
03
•-
03
03
x 1
X
d
CO
o
ft
ft
1 C/3
cd
co
ft
X
rH
X
0
i 2
o
X
53
! n
CN
3
ft
1
X
1
1
1
•-
d
03
r~-
•H
W !
X
03
03
03 i
co
X
•-
X
•-
1
ft
ft
55
ü
d
X'
co
d
0
1 \
o
-ro
0
0
O
>
0
co
d3
co
ro
•»
co
..
r—
dO
c
X
d !
X
d
d
03 i
co
N
o
•-
X
X
o
co
o
d
...
ft
s>
t Q
>
ft
0
0
O
M
0
O
53
O
O
X
! o
**H
CQ
■-
o
co
ft
ü
O
d
d
X
X
0
X
ra
03
co
o
ft
0
o
0
\ 1
03
>
! >
ft
0)
>
Q
0
•-
...
O
o
..
X
CQ
! s
2
2
ft
o
ü
ft
CQ
53
CQ
X
X
03
03
| C
d
o
X
g
o
0
ft
°
x
d
5
0
-H
O
X
0
X
X
o
o
X
CQ
2
! ft
■—•
X
•-
-—
X
*■*
•-
2
2
CQ
d
d
! x
X
o
CN
! x
ft
o
>
ft
! o
X
o
X
X
X
>
0
X
CN
CQ
X
CQ
CQ
CN
CN
CQ
2
■—
X
X
0
03
—-
53
v —
O
2
ft
o
o
w
X
CU
X
CN
d
1 CN
CQ
d
i-3
ft
1 ft
>
ft
X
s
53
2
2
X
X
2
X
CQ
•
2
X
03
03
X
X
■—-
•—
X
53
•—■
ft
i X
X
CQ
...
! ^
X
X
X
d
1 ^
2
4-!
X
JJ
! ft
ft
>i
-U
>i
ft
2
S
CQ
53
d
CQ
CQ
X
X
ft
X
ü
cc
X
*»
■-
1 ft
X
ft
ft
n
ft
ft
X
X
0
ft
a
X
rH
rH
1—1
ft
ft
ft
ft
rH
dO
g
03
d
2
X
o
2
2
CQ
CQ
X
d
*H
ra
d
ft
CP
! o
X
0
cn
' H
d
X
!
ft
X
d
03
1 X
0
X
x
03
X
X
X
X
0)
X
X
X
d
X
d
53
d
•
—■
Cb
—
•—'
2
2
Si
d
g
0
X
ra
X
X
d
CO
w
0
00
c
0
4-1
•ft
1 CP
0
ft
x:
CO
! 03
>
•ft
0
03
ft
ft
ft
ft
ft
ft
ft
ft
d
d3
•H
0
g
d
•*
d
-—
—-
d
53
c
-H
CQ
Ui
■H
i W
tr>
2
>
CN
0
ft
ft
1 C
o
G
u
d
! ^
Oi
-ft
d
d
d
d
d
d
d
d
d
ft
d
1
0
X
d
C
ft
53
c
ft
d
u
X
d
2
X
>
! d
d
d
r-
>
X
u
i -ft
>
•ft
03
o
1 ü
rH
d
43
o
X
ft
ft
ft
ft
ft
ft
ft
o
1
>
ft
d
0
t
X
X
•H
CO
0
X
03
X
c
ft
-—
1 —■
•n
X
cd
X
c
ft
d
1 d?
1
1
ft
ft
Q
Oi
ft
ft
ft
ft
ft
ft
ft
ft
ft
u
d
i o
:x
d
g
! x
co
d
d
X
CP
ft
X
X
X
•-
•ft
ft
co
CN
-ft
2
d
d
1 -ft
2
ft
X
c
c
ft
CP
r
c
•ft
•H
*H
-ft
•ft
•ft
•H
•<3
•H
CP ft
•H
d
g
d
2
-d
53
ft
0
53
■ro
ft
53
CQ
X
ft
ft
d
X’
0
d
<
•ft
43
i ^
<
X
d
•ft
•ft
ft
d
•ft
3
d
d
d
d
d
d
G
ft
>i
0
X
o
d
d
0
w
53
1
ft
ft
X
•H
03
X
X
O
ra
X
ft
ft
X
ft
ft
X
g
Cd
i
-ft
Pi
ft
d
r-f
r-3
X
•ft
CN
ft
rH
rH
r3
i—i
ft
rft
ft
ft
X
X
ft
c
)3
CP
ft
5-t
X
1
ft
53
•H
PS
ft
Q
d
X
ü
ft
-ft
X
o
X
ft
ft
1 d3
d
X
ft
ft
•H
ft
\
ft
03
03
03
03
CO
03
03
CO
ft
ft
•H
d
u
ft
cn
0
g
X
*H
•rH
ft
d
g
CQ
E3
CO
cd
d
X
Pi
ft
ft
co
I C
X
"rH
ft
X
0* 4J
T—
•X
d
d
d
d
d
d
d
d
ft
d
X
d)
d
0
u
53
d
s>
N
d
X
53
ft
X
•<3
X
g
ft
cd
d
0
rft
CU
0
ft 1
•ft
d
d
■d 1
ft
d
d
c
d
X
d
d
d
d
d
d
d
d
d
3J
0
CQ
•H
•H
0
d
X
X
X
•H
d
•rH
d
d
d
2
d
CQ
CQ
CQ
o
CL
2
fe.
W
2
o
2
1 Q3
1
ft
X
H
H
Qi
X
CO
i-i
<
<
C
<
<
<C
<
<
2
2
>
>
CQ
ro
CQ
OJ
2
2
CQ
<
S
CQ
cn
2
2
2
1
CP
d
T-
CN
ro
uo
co
r-
!
1
Q
1 w
u
o
Q
2
! k
or
o
in
P'
00
X—
CN
CA
vD
o
d
m
m
m
o
o
T-
r-
CN
ro
o
T—
CN
CN
X
p-
00
03
T-
d
uo
cc
03
O
T—
CN
co
ft
1
! I
1
1
1
! 1
co
or
CN
CN
CN
CO
CO
CO
co
o
o
o
o
o
T—
T—
»—
O
O
o
co
00
00
O
o
o
o
O
A-
r “
’T-
00
co
o
O
o
X
X
00
1 00
•OP
o
o
! o
o
o
of
! d 1
d
VT
d
d
r-
f-
i—
T—
T—
T—
r—
r—
«—
1—
T-
r-
T-
f -
ro
ro
ro
ro
ro
CO
ro
ro
ro
ro
ro
ro
UO
UO
UO
V
S
T-
CN
co
■d 1
O
o
40
o
o
o
o
o
1
CO
CO
00
co
co
CO
CO
CO
00
00
CO
CO
CO
cn
CO
CD
CO
co
co
CO
co
co
e
o
O
O
o
o
I °
o
o
CN
CN
CN
O
u
i o
U
O
U
U
u
U
u
O
u
u
O
U
0
0
X
d
o
o
o
o
CN
CN
CN
CN
CN
CN
CN
D
D
CQ
CQ
I 00
CQ
CQ
CQ
CQ
CQ
CQ
DQ
CQ
CQ
CQ
CQ
CQ
0
0
r J)
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
CQ
d
S
2
X
X
2
1 2
2
2
2
2
2
>
>
CQ
CQ
1 w
CQ
CQ
CQ
CQ
CQ
CQ
CQ
CQ
CQ
CQ
CQ
CQ
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
I vO
X CO
CP CP
d
ft -H
x ft
•H ft
C <
II
UO
CN
c
x
ro
0)
d
x
c ~
<d d
ft 1 3
03 03
•ro 5-1
•H d
! o) cp >
! T3 -rt
I d ft c
I o o o
! jd > o»
• x c
I ft x
54 H rl
O »—f •—i
o na ft
> ft
C 03
C X X
t 5) H -O
! CP r-i
! d d c •
•H > X c
cp ft d x
•H 0) C "O
N > d ft
•ro .X O
-HO) ï
I ^ 0) 03
03 E <0 *Ü
•ro ft d 5-1
•H 03 ft O)
M -r-t <0> O
ft X ft >
CP
c
.. -H
O
o
uo
o
m
O
uo
o
O
UO
O
m
CP
O
d <—3
i
uo
UO
1
|
uo
CN
1
UO
1
m
UO
1
1
1
m
1
1
1
1
1
1
1
1
1
1
CN
UO
1
1
1
CN
1
1
1
d
1
UO
•H X
v
V
V
ft
«w
*
-
*
**
*
*
*
*
*
*
*
>4.
”4
**
*
*
•4
d
■4
**
> d
o
CN
CN
o
O
ft
CN
03
co
CN
CN
LO
CN
r-
CP
50
X
ro
•d’
CN
'f
CN
d
CN
d
CN
O
CO
t—
0
0
0
0
r-
MD
P'
uo
5 -
MD
r-
'H
T—
r-
T—
T—
O
CO
T—
CN
ro
c-
*—
CN
ro
CN
CN
d*
'f
'f
d
ro
U0
P'
CN
d
d
0
CN
CO
d
>
rj
•T*
03 4.
0
r-
d
ro
r~
c
•ro
ft
d
•r3
53
5-
X
03
O
O
o
>
uo
o
UO
O
o
O
UO
U0
uo
uo
0
O
0
0
0
O
0
0
c
uo
i
|
uo
uo
ft
p^
UO
CN
1
1
1
UO
t
1
m
UO
1
CN
j
CN
J
CN
1
CN
i
1
uo
1
uo
uo
uo
1
UO
d
uo
1
0
uo
1
x d
V
V
-
•H
-
V
K
V
-
N.
*
N.
V
-4
•4
V
4*
*
*4
«Sr
*4
*4
*4
v
•4
•4
d d
CN
UO
UO
CN
CN
d
CN
03
CO
CN
UO
uo
CN
03
LD
p-
P'
MD
^f
d*
d
d
d
d
0
co
UO
T—
CN
CN
U0
r-
r-
t—
ro
ra
CN
X w
r-
t—
r—
t—
r-
cn
r-
CN
ro
t—
CN
CN
't
CN
CN
d 1
d
d
ro
co
CN
d
d
T~
CN
CP
lO
*n
CN
O
ft 5-
T-
T—
d
ro
r~
•H
T-
d
5<
ro
43
4J
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
•33
43
43
Cb
43
43
;
.
*
•
.
I
53
0
.
«
d
•
0
0
.
X
•
.
ft
0
.
•
d
53
•
ft
CD
CN
ro
.
•
X
CO
0
CO
♦
.
X
X
X
ft
s
jj
•
c
.
.
X
03
X
•
.
X
d
ra
ft
c
d
c
ft
X
.
ft
ra
*0
.
rH
c
ft
X
d
X
0
•H
X
r—
X
•
.
ft
.
cn
co
ft
•
.
Cb
0
d
X
d
rH
JD
ft
ft
r-
r-
u
.
.
X
.
CP
d
X
V
.
£
0
•H
rH
>
ft
a
O
Cb
£
ra
.
.
ra
d
ft
•ro
X
0
53
Cm
X
g
CP
•H
E
E
53
co
ra
-H
ft
ft
rH
X
co
0
Cb
g
CN
X
0
c
••4
ft
CN
X
d
53
.
d
CD
C
Cb
•ro
X
0
ft
rH
CD
•H
O
Cb
0
ft
ft
>
ü
0
X
d
*H
s
ft
-ro
ft
ft
CN
CD
43
c
Cb
O
1
CN
•rH
ft
0
ft
53
0
C
ft
X
0
C
0
•H
£
•-
•4.
O
x:
Cb
r~
00
-U
O
ft
ra
d
o
.
>
d
cb
CD
ft
-H
C
X
0
•H
•N
53
0
O
O
CN
CQ
X
O
d
ft
•H
X
! •
0
X
X
5 ,
•H
rH
0
1 5-1
O
O
T—
Cb
1 CD
O
O
Cb
2
1 c
r:
c
•H
O
ft
d
g
c
ft
ü
•.
—
•ro
X
03
53
Cb
CN
Cb 0
O
O
O
! ®
X
X
c
E-*
CN
•
cc
ft
c
X
X
X
ft
rH
Cb
g
Du
O
O
43
..
1 •»
CN
CN
ft
ft
>
>
>
o
04
.
ra
5D
0
g
d
ft
o
CD
d
Cb
.« 1
0
CP
CN
CN
d
0
O
O.
Cb
0
0
1 X
X
X
03
o
.
53
o
X
X
X
d
d
-H
E
ft !
CN
CD
X
53
0
X
Cb
X
0
O
0
0
1 -H
-H
-H
o
°
X
X
o
53
ft
-U
-54
•ro
X
43
43
53
0
d
X
0
0
rH
0
O
ft
ft
>
>
i U
Su
54
c
1 CN
d
*
03
T—
0
CN
d
d
d
ft
rH
5t
53
Cb
O
•H
..
..
rH
0 1
0
53
53
CO
CN
CN
0
0
•Q
X3
!
0
•H
•r3
c
d
Cb
X
X
53
53
53
>
CN
0
0
Cb
Cb
c
0
X
X
1 03
CP
03
ft
53
. 1
.»
>
+
53
53
N
•H
g
ft
ft
..
O 3
X
X
X
0
0
co
>
t>
ü
CD
! ï
5
' 03
X
0
o
O
Oi
O 3
53
53
0
c
d
X
X
53
TJ
T3
X
ft
>
>
0
ft
ft
d
d
1 d
d
d
X
d
O
0
ft
o
o
X
ft
ft
53
5»
X
Cb
ü
-H
•H
0
0
X
5t
5i
•ro
d
5>
0
O
0
ft
ft
43
43
X
X
X
-ro
-H
ft
>
X
o
o
•ro
d
X 1
X
X
>
1
!
d
d
x !
0
0
ft
d
O
53
53
T3
0
0
c
d
ft
ft
-H
•^3
-H
X
N
_
0
ft !
CN
CN
CO
■H
X
X
X
..
53
5t
43
43
ft 1
O
ü
d
£
0
X
X
>
>
-H
•H
X
X
z
z
z
03
X
-ro
CO
ft
X
04
Cb
0
53
rH j
ft
ft
X
X ■
X
X
53
53
d 1
X
X
•H
O
>
s
g
43
ft
ft
ft
ft
c
0
•H
o
X
53
O
0
03
Oi !
c
d
ft
ü
CD
ft
ft
X
X
x 1
5u
5i
53
ft
g
g
O
ft
ft
Cb
Cb
d
c
CP
tp
CP
tp
-H
ft 1
o
•H
X
ft
X
X
d
e
X
X
C
d
d 1
X
X
ft
ft
g
53
53
Cb
d
ft
d
d
ft
0
0
1
1
•H
•H
d
G
c
c
ft
cn
d
o
ft
X
53
ft
ft
CP
X
0
g
g
-H
43
43 1
S
g
d
d
•H
X
X
1
d
£
5i
ft
CO
JJ 1
3J
ft
ft
1
1
•H
•H
•H
-H
03
X
d
CN
-r3
ft
X
ft
ft
54
d
o
•H
-H
53
5u
53
X
X
•H
-f3
53
X
X
X
rH
-H
CP
CP
ft
ft 1
ft
X
X
ra
ra
!>
ft
JJ
ft
--1
54 1
d
03
ft
0
X
X
X
X
53
5-
Cb
X
X
•H
•H
1
1
X
-H
•H
0
X
53
0
0
ra
X
X
JJ
ft
ü
CD
•ro
1 ft
3->
ft
rH
d
03
O
53
ft
ra
03
ft
X
X
1
ft
ft
ft
ft
d
C
Cb
Q 4
Cb
Q
0
Cb
53
ft
c
>
>
X
.X
■H
•H
•i3
1 d
d
d
53
d
ft
CO
d
Ou
0
ra
CQ
Cb 2
2
O 4
Qb 2
d
d
c
d
X
X
X
0
0
2
Cb
CP
03
Cb
d
d
d
d
d
c
d
53
1 >
>
>
0
-H
Cb
53
d
d
0
<
<
X
O
•H
•H
X
X
Cb
Cb
X
*
•X
ra
c
DX
0
0
ft
5 -
0
0
r
! c
c
d
ft
o
d
-H
u
0
Cb
o
O
Pi
Pi
X
X
Pi
1
1
d
d
ft
ft
1
1
1
d
CP
X
2
2
CD
o
d
d
ft
ft
O
! x
X
X
-H
o
53
rH
M
(H
•H
-H
CP
1
•
X
o;
CP
CP si
jd
d
X
X
53
X
d
rH
O
O
X
1
1
JX
DX
ft
ft
03
! g
g
E
d
o
ft
•H
UI
CQ
X
d
d
X
X
0
O
X
0
0
X
X
CD
0
CN
0
0
ft
0
53
53
X
X
CP
*
<
1
1
c
d
g
d
d
d
0
CN
X
ft
c
<
CQ
•H
•H
X
X
X
\ \
X
D
Q
53
53
-H
•H
•
O
Q
X
D
X
• X
X
X
X
\
0
O
X
X
O
“
CQ
CQ
2
Cb
0
1
Ü4
CQ
CQ
2
2
I
2
ft
T ~
M
M
2
2
X
Ö3
uQ
>
2
2
w
2
£3
>
CQ
CQ
ft
ft
Q
i
co
CO
0
0
1
•H U,
1
1
1
X X
!
o
1
ft g
1 o
«-
CN
o
O
r-
CN
ro
d-
uo
i-
T-
ft
<
0
<
<<
CQ
<
0
4
0
<
0
<
<
CQ
w
2
0
CQ
<
0
<
1 0
0
M
4
0
03 g
1 o
o
O
<—
CN
CN
CN
CN
CN
M
1
t
T—
1
!
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
t
1
!
1
1
1
1
x d
i CP
CP
03
03
03
CP
03
03
03
03
r~
4—
o
CN
CN
ro
'f
m
X
MD
r-
P'
co
CO
o\
T—
T—
T-
•—
(N
ro
d
d
co
CN
CN
uo
uo
MD
X
cn c
r-
*-
T ~
T "
CN
1 M
CN
CN
CN
04
I I
MD UO
cn CO
O LD
m cn
r~ cp
CN 00
1-1 4-1
• ft
. O)
03
ft ft
d ft
•H g
ft O
ft O
o o
o o
o o
CN CN
ft ft
5-1 ft
O O
O o
> >
ft ft
•H *»H
ft ft
ft ft
I I
o 0
EH E-*
O U
I I
O o
ft ft
ft ft
< o
I I
r- p-
cn cn
uo
I I CN
d r-
m O
o o
t LO U0
cp — r-
ro P'
4-1 4-1 4-1
03 • •
0 • •
TJ . .
2 2 !
O o :
ft ft
1 I I |
I I I I I
T- CP O CO CN
O O CN 00 CO
O o
I i in cn i
uo -n f" CN «o*
O CN <P CO
ft ft <W ft ft
c .
Z C • o •
H O O •
ft ü ft! O •
03 CN •
. • 03 ft •
r—I r—Ir- 1 •
o o ft ft .
ft ft s o •
110 0
MD CP O > O
O
o o o o CN
O o o ft> ft
O O O •■“i
CN CN CN d ft
ft ft ft o o
ft ft ft 7 >
O O 0 ft
O O O 03 ft
> t> t> <-* 20
-O i
03 03 0) S O
O O O 03 m
<0 d d CO C/3
43 43 4-i 03 <J
ft ft ft <; co
03 0? X'
U iJ u --
C C C 00 co
-H -H -H CN CN
lll»-r-
X X w r~ r-
U CD O CN CN
•H -H O
ft ft 0 2 2
C/3 W 1-1 O O
>i >i CO ft ft
O O <0 ft ft
h ^ 2) ü K
u o 0 4 CQ
I I I I I
(JlC^'ï'-r-
CN CN CO X X
I I I I
1 oo o o o
J CO 41 uO O
• O O O
• m m m i
! V V - V
1 cn cn cn m
1 <p m uo o
I
o
o
ft
ft •
d TJ
ft C
I
i
i
ft cn 1'
O I g -ft
O O
> o — g
co o
< 3 * cn o ♦*
ft o o
d c< o
03 ft ft O
CP X CN
d x ft ft
03 ft O
ft 03 C ft
O 3 > O
Cp ft o
0) X' cn >
■ft >
•ft 03 X ^
g y O! ft
cd 03 d 0)
ft E-* 0! >
ft 43
1 CO CO
1 CN CN
X'
CP
I
2
o
ft
K
r-
03
2
O
ft
d
ft
d
O
CO
CN
ft
X
CN
O
CO
(N
ft
ft H
f I
lO CO 03 X
36
PHILIPS
Met het Philips MSX-systeem maakt
u maatwerk van uw thuiscomputer. Alle
MSX-componenten zijn los verkrijgbaar.
Altijd pasklaar en simpel aan te sluiten. Zo
kunt u rustig, stap voor stap bouwen aan uw
hoogst persoonlijke thuiscomputer. Zonder
bang te hoeven zijn voor veroudering. Want
MSX is nu de wereld-standaard voor thuis¬
computers.
1. Philips MSX Thuiscomputer
VG 8235; 128 Kbyte*werkgeheugen + 128
Kbyte videogeheugen. Ingebouwde 3'/2 inch
Floppy Disk Drive. Aansluitingen voor
tweede Disk Drive, monitors (RGB en CVBS),
TV-toestel, printer, spelregelaars en datacas-
setterecorder. 80 karakters per regel, inge¬
bouwde klok/timer en password.
2. Philips MSX Thuiscomputer
VG 8020; 64 Kbyte*werkgeheugen + 16 Kbyte
videogeheugen. Aansluitingen voor monitor,
TV-toestel, printer spelregelaars en datacas-
setterecorder.
3. Floppy Disk Drive VY 0010; voor 3'/2
inch micro-„floppy disks”. Inclusief net-
voeding en interface. Zeer korte toegangs-
tijd, 80 sporen (enkelzijdig, geformateerd);
opslagcapaciteit 360 Kbyte.
4. Data-cassetterecorder D 6450;
voor gemakkelijke opslag van programma’s
en gegevens. De motor wordt bestuurd door
de MSX thuiscomputer.
5. MSX-matrixprinter VW 0020;
80 posities per regel. Tekenmatrix 8x8. Kan
alle 254 tekens afdrukken.
6. MSX-matrixprinter VW 0030; 80 of
137 posities per regel. Tekenmatrix 9x9.
Drukt bi-directioneel 100 tekens per
seconde. Keus uit veel lettertypen, waar¬
onder proportioneel en correspondentie-
kwaliteit. Kan alle 254 tekens afdrukken op
kettingpapier en losse vellen van 114 tot
254 mm breed.
7. Kleurenmonitor CM 8510; 280x285
punten of 25 regels van 64 tekens. Omscha-
kelbaar voor gebruik van een videorecorder.
8. Monochrome MSX-monitor
BM 7552/00C; groen beeldscherm (31 cm).
920x300 punten. Goed voor 25 regels van 80
tekens. Helderheid, contrast en geluids¬
sterkte zijn regelbaar.
9. Luxe spelregelaar VU 0005; met
stuurknuppel met twee actietoetsen.
10. Software op floppy disk en in-
steekmodule; waaronder spellen, financiële
en voorraadadministratie, de educatieve
computertaal MSX Logo, MSX-DOS en Vidi¬
tel. De Viditelmodule is geschikt voor
communicatie met Viditel,
en als RS 232C
interface.